我正在尝试使用pyspark读取大型的csv文件。特别是,我有一个文本列,需要正确阅读。
使用熊猫时,我正在读取文件,如下所示:
df = pd.read_csv(fpath,encoding='ansi',nrows=10000)
看起来不错。熊猫正确读取的文本列。
为了在pyspark中复制ansi编码,我找到了这个-Read CSV file in pyspark with ANSI encoding。我使用以下代码读取文件:
sparkDF= spark.read.format("csv")\
.option("header", "true")\
.option("encoding","ISO-8859–1")\
.option("multiline","true")\
.option("escape", "\"")\
.load(fpath)
但是结果与熊猫码不同。特别是,文本列在pyspark中具有怪异的字符,但在熊猫中看起来不错。在pyspark中,“ ISO-8859–1”编码返回的结果与“ utf-8”编码完全相同,这使我认为该编码实际上并不起作用。如果我使用的是荒谬的编码,我不会收到错误消息,并且结果完全相同-因此,我假设它使用的是默认的utf-8编码。
有什么想法为什么编码不能真正起作用?
编辑: multiline选项正在禁用编码。有没有解决的办法?如果没有多行,则无法正确读取文件。