Apache spark 读取csv时在Spark-2.2.0中使用双引号处理多行数据
正在尝试将CSV数据读入Spark-2.2.0中的数据帧。包含数据的单元格有多行文本,第一行有几个字,用双引号括起来。下面是使用的代码。尝试了许多选择,但没有真正起作用Apache spark 读取csv时在Spark-2.2.0中使用双引号处理多行数据,apache-spark,pyspark,pyspark-sql,Apache Spark,Pyspark,Pyspark Sql,正在尝试将CSV数据读入Spark-2.2.0中的数据帧。包含数据的单元格有多行文本,第一行有几个字,用双引号括起来。下面是使用的代码。尝试了许多选择,但没有真正起作用 df = (sqlContext.read .format("com.databricks.spark.csv") .option("header", "true") .option("inferSchema","true") .option("multiLine","true") .option("quoteMode","AL
df = (sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "true")
.option("inferSchema","true")
.option("multiLine","true")
.option("quoteMode","ALL")
.option("mode","PERMISSIVE")
.option("ignoreLeadingWhiteSpace","true")
.option("ignoreTrailingWhiteSpace","true")
.option("parserLib","UNIVOCITY")
.load("C:/Desktop/testing.csv"))
这是我们试图从文件中读取的数据。第一个单元格有三行数据
输入数据:
+----------------------------------------+------------------------+
| text| time|
+----------------------------------------+------------------------+
|#Word #This "are acting though." | 08-11-2016 05:47:00 |
|This is the | |
|Not so. | |
+----------------------------------------+------------------------+
|I'm not sure if I have any left | 08-11-2016 05:48:00 |
+----------------------------------------+------------------------+
|bob day is an honest person | 08-11-2016 05:49:00 |
|"a loss to the senate" | |
+----------------------------------------+------------------------+
作业运行时没有错误,但读取的数据不正确。内容如下
输出:
+----------------------------------------+------------------------+
| text| time|
+----------------------------------------+------------------------+
|\#Word #This \"\"are acting though.\"\""| |
+----------------------------------------+------------------------+
|This is the | |
|Not so.\",08-11-2016 05:47:00 | |
+----------------------------------------+------------------------+
|I'm not sure if I have any left | 08-11-2016 05:48:00 |
+----------------------------------------+------------------------+
|\bob day is an honest person | 08-11-2016 05:49:00 |
|\"\"a loss to the senate\"\"\"" | |
+----------------------------------------+------------------------+
当该行在双引号后被分为两行时,使用此符号,并且还可以看到很少的“\”。时间戳也被移动。根据此,您应该将
wholeFile
选项设置为True
,以转义转义所指定字符之间的换行符。但是,看起来您没有跳过包含换行符的文本,因此这可能不起作用。您可能应该重新格式化源代码,使包含换行符的文本被引用。您能给出一个示例数据吗。我无法复制同样的问题。我尝试在单元格中插入新行,当multiline为True时,它对我有效。据我所知,“\”可能是这里的问题。@mayangagrawal是的,额外的“\”正在添加到输出数据中。输入只有双引号。我认为将参数“escape”设置为与默认值“\”不同的值可能会起作用。我遇到了类似的问题,并找到了解决方案,感谢@ags29添加(“escape”,“n”)和(“wholeFile”,“True”)在一定程度上解决了问题。第三张唱片现在正合适地出现。像第一个这样的记录仍然存在问题。