Spark:使用分隔符拆分不能用逗号

问题描述 投票:0回答:1

我正在使用Spark(2.2)使用Spark SQL并使用Java API从CSV文件加载数据。

在CSV文件中,单元格内部有引号,列分隔符是管道|。

线示例:2012|"Hello|World"

这是我读取CSV并返回数据集的代码:

session = SparkSession.builder().getOrCreate();
Dataset<Row>=session.read().option("header", "true").option("delimiter", |).csv(filePath);

这就是我得到的

+-----+--------------+--------------------------+
|Year |       c1     |               c2         |
+-----+--------------+--------------------------+
|2012 |Hello|World   +              null        |
+-----+--------------+--------------------------+   

预期的结果是这样的:

+-----+--------------+--------------------------+
|Year |       c1     |               c2         |
+-----+--------------+--------------------------+
|2012 |"Hello        +              World"      |
+-----+--------------+--------------------------+

我唯一能想到的是删除逗号''',但这是不可能的,因为我不想改变单元格的值。

我要感谢任何想法,谢谢。

java apache-spark apache-spark-sql delimiter
1个回答
1
投票

试试这个 :

 Dataset<Row> test = spark.read()
.format("com.databricks.spark.csv")
.option("header", "true")
.option("delimiter", "|")
.option("quote", " ")
.load(filePath);
© www.soinside.com 2019 - 2024. All rights reserved.