Напишите файл CSV в quoteMode NON_NUMERIC, чтобы только строки и нечисловые ячейки были окружены кавычками - PullRequest
0 голосов
/ 17 февраля 2019

У меня есть CSV для записи с такой схемой:

StructType s = schema.add("codeCommuneCR", StringType, false);
s = s.add("nomCommuneCR", StringType, false);
s = s.add("populationCR", IntegerType, false);
s = s.add("resultatComptable", IntegerType, false);

Если я не предоставлю опцию " quoteMode " или даже если я установлю ее на NON_NUMERIC, вот так:

ds.coalesce(1).write().mode(SaveMode.Overwrite)
.option("header", "true")
.option("quoteMode", "NON_NUMERIC")
.option("quote", "\"")
.csv("./target/out_200071470.csv");

CSV, записанный Spark, будет таким:

codeCommuneCR,nomCommuneCR,populationCR,resultatComptable
03142,LENAX,267,43

Если я вместо этого установлю параметр " quoteAll ", какчто:

ds.coalesce(1).write().mode(SaveMode.Overwrite)
.option("header", "true")
.option("quoteAll", true)
.option("quote", "\"")
.csv("./target/out_200071470.csv");

он генерирует:

codeCommuneCR,nomCommuneCR,populationCR,resultatComptable
"03142","LENAX","267","43"

Но я бы хотел .option("quoteMode", "NON_NUMERIC") сгенерировать:

codeCommuneCR,nomCommuneCR,populationCR,resultatComptable
"03142","LENAX",267,43

в соответствии с моей схемой.

Как мне выполнить настройки?

С уважением,

1 Ответ

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

Я открыл вопрос об этом и узнал, что Spark теперь обрабатывает CSV через Univocity, которые больше не поддерживают эту функцию.

Повторное добавление не планируется,Параметр "quoteMode" больше не учитывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...