在pyspark中读取带有换行符的CSV 我想在pyspark中阅读“合法”(它跟随RFC4180)CSV,其中某些行中有分隔线(CRLF)。下一个代码示例显示了使用Notepad ++打开它时的效果:
我尝试使用 format ='com.databricks.spark.csv。并使用 sqlCtx.read.load 阅读它在这些特定情况下,数据集显示两行而不是一行。我使用的是Spark 2.1.0.2版本。
是否有任何命令或替代方式来读取csv,这使我只能将这两行读作一个?
答案 0 :(得分:2)
您可以使用“csv”而不是Databricks CSV - 最后一个重定向到默认的Spark阅读器。但是,这只是一个提示:)
在Spark 2.2中添加了新选项 - wholeFile
。如果你这样写:
spark.read.option("wholeFile", "true").csv("file.csv")
它将读取所有文件并处理多行CSV。
Spark 2.1中没有这样的选项。您可以使用sparkContext.wholeTextFile
读取文件或只使用较新的版本
答案 1 :(得分:0)
wholeFile 在 spark api 文档中不存在(不再存在?): https://spark.apache.org/docs/2.2.0/api/python/pyspark.sql.html
此解决方案有效:
spark.read.option("multiLine", "true").csv("file.csv")
来自 api 文档:
multiLine – 解析可能跨越多行的记录。如果设置 None ,则使用默认值,false