gpt4 book ai didi

scala - 如何保存带引号的所有字段的 CSV?

转载 作者:行者123 更新时间:2023-12-02 17:10:31 24 4
gpt4 key购买 nike

下面的代码不添加默认的双引号。我还尝试使用选项 quote 添加 # 和单引号,但没有成功。我还将 quoteModeALLNON_NUMERIC 选项一起使用,输出仍然没有变化。

s2d.coalesce(64).write
.format("com.databricks.spark.csv")
.option("header", "false")
.save(fname)

还有其他我可以尝试的选择吗?我使用 Spark-csv 2.11 而不是 Spark 2.1。

它产生的输出:

d4c354ef,2017-03-14 16:31:33,2017-03-14 16:31:46,104617772177,340618697

我正在寻找的输出:

“d4c354ef”,”2017-03-14 16:31:33”,”2017-03-14 16:31:46”,104617772177,340618697  

最佳答案

tl;dr启用quoteAll选项。

scala> Seq(("hello", 5)).toDF.write.option("quoteAll", true).csv("hello5.csv")

上面给出了以下输出:

$ cat hello5.csv/part-00000-a0ecb4c2-76a9-4e08-9c54-6a7922376fe6-c000.csv
"hello","5"

假设引用"(参见CSVOptions)

但是,这不会给您“所有非数字字符使用双引号。” 抱歉。

您可以在 CSVOptions 中看到所有选项作为 CSV 读取器和写入器的选项来源。

附: com.databricks.spark.csv 目前只是 csv 格式的别名。您可以互换使用两者,但首选较短的 csv

附:使用 option("header", false) (false 作为 bool 值而不是字符串),这将使您的代码稍微更加类型安全。

关于scala - 如何保存带引号的所有字段的 CSV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43643999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com