【发布时间】:2018-05-25 07:14:42
【问题描述】:
尝试将 CSV 数据读入 Spark-2.2.0 中的数据帧。包含数据的单元格具有多行文本,第一行双引号中的单词很少。下面是使用的代码。尝试了很多选项,但都没有真正奏效。
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\"\"\"" | |
+----------------------------------------+------------------------+
对此感到震惊,因为该行在双引号后分成两行,并且还看到几个“\”。时间戳也移动了。
【问题讨论】:
-
能否给个样本数据。我无法重现相同的问题。我尝试在单元格中插入新行,当多行为真时它对我有用。据我了解,'\' 可能是这里的问题。
-
@mayankagrawal 是的,额外的“\”正在添加到输出数据中。输入只有双引号。
-
我认为将参数 'escape' 设置为与默认值 '\' 不同的值可能会起作用
-
我遇到了类似的问题并找到了解决方案stackoverflow.com/questions/53818894/…
标签: apache-spark pyspark pyspark-sql