我正在尝试使用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两个版本中试过这个。
答案 0 :(得分:0)
我创建了自己的hadoop自定义记录阅读器,并能够通过调用api来阅读它。
<properties>
<m2eclipse.wtp.contextRoot>my-context</m2eclipse.wtp.contextRoot>
</properties>
在Custom Record Reader中实现了处理遇到的换行符的逻辑。