Spark: разделение с помощью разделителя не работает с запятыми - PullRequest
0 голосов
/ 19 февраля 2019

Я работаю над Spark SQL с Spark (2.2) и использую 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"      |
+-----+--------------+--------------------------+

Единственное, о чем я могу думать, это удалить запятые "" ", но об этом не может быть и речи, потому что я не хочу менять значения ячеек.

Буду признателен за любые идеи, спасибо.

1 Ответ

0 голосов
/ 19 февраля 2019

Попробуйте это:

 Dataset<Row> test = spark.read()
.format("com.databricks.spark.csv")
.option("header", "true")
.option("delimiter", "|")
.option("quote", " ")
.load(filePath);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...