在spark-scala数据帧的列中使用非英语字符



以下是我试图加载到数据帧中的文件的一部分:

字母表|句子|注释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)

最新更新