pyspark 读取 csv 文件多行选项不适用于具有换行符 spark2.3 和 spark2.2 的记录
pyspark read csv file multiLine option not working for records which has newline spark2.3 and spark2.2
我正在尝试使用 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 版本都试过了。
我创建了自己的 hadoop 自定义记录 Reader 并且能够通过调用 api 来读取它。
spark.sparkContext.newAPIHadoopFile(file_path,'com.test.multi.reader.CustomFileFormat','org.apache.hadoop.io.LongWritable','org.apache.hadoop.io.Text',conf=conf)
并在自定义记录中 Reader 实现了处理遇到的换行符的逻辑。
我正在尝试使用 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 版本都试过了。
我创建了自己的 hadoop 自定义记录 Reader 并且能够通过调用 api 来读取它。
spark.sparkContext.newAPIHadoopFile(file_path,'com.test.multi.reader.CustomFileFormat','org.apache.hadoop.io.LongWritable','org.apache.hadoop.io.Text',conf=conf)
并在自定义记录中 Reader 实现了处理遇到的换行符的逻辑。