pyspark读取csv文件multiLine选项不适用于具有换行符spark2.3和spark2.2的记录

时间:2018-04-02 00:11:54

标签: python-3.x apache-spark pyspark spark-dataframe

我正在尝试使用pyspark csv reader读取dat文件,它包含换行符(“\ n”)作为数据的一部分。 Spark无法将此文件作为单列读取,而是将其视为新行。 我在阅读时尝试使用“multiLine”选项,但仍无效。

spark.read.csv(file_path, schema=schema, sep=delimiter,multiLine=True)

数据是这样的。这里$是vim中显示的换行符的CRLF name,test,12345,$ $ ,desc$ name2,test2,12345,$ $ ,desc2$ 所以pyspark将desc视为下一个记录。

如何在pyspark中阅读此类数据。 在spark2.2和spark2.3两个版本中试过这个。

1 个答案:

答案 0 :(得分:0)

我创建了自己的hadoop自定义记录阅读器,并能够通过调用api来阅读它。

<properties> <m2eclipse.wtp.contextRoot>my-context</m2eclipse.wtp.contextRoot> </properties>

在Custom Record Reader中实现了处理遇到的换行符的逻辑。