首页 > 解决方案 > Spark read.csv 不会忽略引号内的分隔符

问题描述

我正在使用 Pyspark 2.4 将一个简单的 csv 文件读入数据帧,然后show()对控制台执行操作。这是有问题的csv,以及我运行的代码:

CSV:

A|B|C
AAAA|BBBB|CCCC
A"||114|WWWW|CC|BBBBB|AAAF||"ZZZZ FFFF
"||114|WWWW|CC|BBBBB|AAAF||"ZZZZ FFFF
A"||114|WWWW|CC|BBBBB|AAAF||"ZZZZ FFFF | FFF | GGGG

代码:

>>> df_am_event =  
spark.read.option('delimiter','|').option('quote','"').option('header','true').csv('testDS')
>>> df_am_event.show()
+--------------------+----+----+
|                   A|   B|   C|
+--------------------+----+----+
|                AAAA|BBBB|CCCC|
|                  A"|null| 114|
|"||114|WWWW|CC|BB...|null|null|
|                  A"|null| 114|
+--------------------+----+----+

这里的问题是,对于第二条和第四条记录,我希望看到与第三条记录相同的行为。也就是说,引号之间的任何分隔符都应该被忽略。

但在实践中发生的情况是,如果我在引号前添加任何内容,则不再忽略分隔符。

在这种情况下我做错了什么?

谢谢你。

标签: csvapache-sparkpysparkapache-spark-sql

解决方案


推荐阅读