我正在使用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" |
+-----+--------------+--------------------------+
我唯一能想到的就是删除逗号'",但是这是不疑问的,因为我不想更改单元格的值。
我很感激任何想法,谢谢。
尝试以下:
Dataset<Row> test = spark.read()
.format("com.databricks.spark.csv")
.option("header", "true")
.option("delimiter", "|")
.option("quote", " ")
.load(filePath);