Spark:使用分隔符拆分不适用于逗号
Spark: Splitting using delimiter doesn't work with commas
我正在使用 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);
我正在使用 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);