我有一个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)
其他选项效果很好,但只有引用似乎无法正常工作。它加载引号(")。如何从加载的数据中删除此符号。
dataframe.show结果
+----+----+------+---------------+
| _c0| _c1| _c2| _c3|
+----+----+------+---------------+
|0001| "A"| "001"| "2017/01/01 12"|
|0001| "B"| "002"| "2017/01/01 13"|
+----+----+------+---------------+
答案 0 :(得分:3)
您可以使用选项引用,如下所示
option("quote", "\"")
如果您的两个数据之间有额外的空间“abc”,“xyz”,则需要使用
option("ignoreLeadingWhiteSpace", true)
希望这有帮助
答案 1 :(得分:2)
我使用databicks api创建了一个示例程序,并在您的数据集上尝试了它
请检查以下代码以阅读csv文件
val df = spark.read.format("com.databricks.spark.csv")
.option("header", true)
.option("ignoreLeadingWhiteSpace", true)
.load("src/test/resources/test")
df.show()
+-----+------+-----+
|first|second|third|
+-----+------+-----+
| A| 001| CCC|
| B| 002| DDD|
+-----+------+-----+