以下是我试图加载到数据帧中的文件的一部分:
字母表|句子|注释1
è|小e|无
Ü|大写U|无
ã|小型a|
Ç|大写C|无
当我将此文件加载到数据帧中时,所有非英语字符都会转换为方框。尝试给予option("encoding","UTF-8")
,但没有变化。
val nonEnglishDF = spark.read.format("com.databricks.spark.csv").option("delimiter","|").option("header",true).option("encoding","UTF-8").load(hdfs file path)
请告诉我有什么解决方案。最后,我需要在不更改非英语字符的情况下保存文件。目前,当保存文件时,它会放方框或问号,而不是非英语字符。
在该列上使用decode
函数:
decode(col("column_name"), "US-ASCII")
//It should work with one of these ('US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16')
它与选项("encoding","ISO-8859-1"(配合使用。例如
val nonEnglishDF = spark.read.format("com.databricks.spark.csv").option("delimiter","|").option("header",true).option("encoding","ISO-8859-1").load(hdfs file path)