Spark - 用引号读取 csv 文件

J.D*_*one 6 apache-spark

我有一个 CSV 文件,其中包含双引号 (") 中的数据。

“0001”、“A”、“001”、“2017/01/01 12”

“0001”、“B”、“002”、“2017/01/01 13”

我只想读取纯数据(没有 " 符号)。

spark.read
 .option("encoding", encoding)
 .option("header", header)
 .option("quote", quote)
 .option("sep", sep)
Run Code Online (Sandbox Code Playgroud)

其他选项运行良好,但只有引用似乎不能正常工作。它加载了引号 (")。我应该如何从加载的数据中去掉这个符号。


dataframe.show 结果

+----+----+------+---------------+
| _c0| _c1|   _c2|             _c3|
+----+----+------+---------------+
|0001| "A"| "001"| "2017/01/01 12"|
|0001| "B"| "002"| "2017/01/01 13"|
+----+----+------+---------------+
Run Code Online (Sandbox Code Playgroud)

Sha*_*ala 6

您可以使用如下选项报价

option("quote", "\"")
Run Code Online (Sandbox Code Playgroud)

如果你的两个数据之间有一个额外的空格作为“abc”,“xyz”,那么你需要使用

option("ignoreLeadingWhiteSpace", true)

希望这可以帮助

  • `option("quote", "\"")` 对我没有任何作用,直到我还添加了 `option("escape", "\"")` 来反映 CSV 语法,其中引号内的引号用引号转义。 (2认同)