如何正确读取CSV-pyspark和混乱数据

时间:2019-11-14 17:23:39

标签: pyspark

我尝试读取带有hasNext且其中包含以下行的CSV文件:

pyspark

我的阅读代码:

2100,"Apple Mac Air A1465 11.6"" Laptop - MD/B (Apr, 2014)",Apple MacBook

df = spark.read.options(header='true', inferschema='true').csv(file_path) 在中间拆分第二个组件:

df

意味着第二个原始组件被拆分为两个组件。 我尝试了其他几种语法(数据块,sql上下文等),但是所有语法都相同。

这是什么原因?我该如何解决?

2 个答案:

答案 0 :(得分:2)

对于这种情况,spark提供了一个很好的解决方案,即转义选项。 只需在选项中添加escape ='“'。您将获得3个组件,如下所示。

df= spark.read.options(header='true', inferschema='true',escape='"').csv("file:///home/srikarthik/av.txt")

答案 1 :(得分:0)

之所以会这样,是因为文件分隔符是逗号(',')。 因此,编写一个代码,使其在“和”

之间时会忽略逗号。

否则,第二种解决方案-您按原样读取文件而没有列标题。然后在打赌“”时用* /其他任何标点符号替换逗号。然后保存文件,然后使用逗号作为分隔符读取文件即可