我有一个具有该架构的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");
Spark编写的CSV是这样的:
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

根据我的模式。

我应该如何设置?

问候,

最佳答案

我已经解决了一个问题,并了解到Spark现在可以通过Univocity处理CSV了,该人不再支持此功能。

没有计划重新添加它,不再考虑"quoteMode"选项。

10-06 09:33