在quoteMode NON_NUMERIC中编写一个CSV文件,只有字符串和非数字单元格被引号包围

我有一个具有该架构的 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");

所写的 CSVSpark是这个:


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

根据我的架构。


我的设置应该怎么做?


慕少森
浏览 204回答 1
1回答

桃花长相依

我已经打开了一个关于它的问题,并了解到Spark现在通过 CSV 处理Univocity,谁不再支持此功能。没有计划重新添加它,"quoteMode"不再考虑该选项。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java