Pyspark-读取csv文件并保留原始特殊字符

时间:2020-10-11 23:29:45

标签: python pandas pyspark

我正在读取一个仅包含如下数据的csv文件

Country        State      City
MÉXICO         Neu Leon   Monterrey    
MÉXICO         Chiapas    ATLÁNTICO

我尝试在pyspark数据帧中读取编码为'utf8'和'ISO-8859-1'的文件,但值的变化如下所示-

在option(“ encoding”,“ utf-8”)

Country          State      City
M�XICO         Neu Leon   Monterrey    
M�XICO         Chiapas    ATL�NTICO

在选项中(“编码”,“ ISO-8859-1”)

Country        State      City
M?XICO         Neu Leon   Monterrey    
M?XICO         Chiapas    ATL?NTICO

这是spark读取语句

spark.read.format("csv").option("quote", "\"").option("escape", "\"").option('multiLine', True).option("encoding", "ISO-8859-1").option("header", "true").load("country.csv")

option(“ encoding”,“ mbcs”)和option(“ encoding”,“ ansi”)给出错误。

我该怎么做才能保留输入文件中的原始文本?预先感谢

1 个答案:

答案 0 :(得分:0)

无需编码即可将其读入,然后创建一个新列:

df.withColumn("some_col_name", decode(col("column_name"), "ISO-8859-1"))

# One of these will give you what you need. ('US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16')