【问题标题】:Saved data has undesired quotation marks保存的数据有不需要的引号
【发布时间】:2016-06-06 18:30:38
【问题描述】:

我正在使用以下代码将我的数据框导出到 csv:

data.write.format('com.databricks.spark.csv').options(delimiter="\t", codec="org.apache.hadoop.io.compress.GzipCodec").save('s3a://myBucket/myPath')

请注意,我使用delimiter="\t",因为我不想在每个字段周围添加额外的引号。但是,当我检查输出 csv 文件时,仍然有一些字段用引号括起来。例如

abcdABCDAAbbcd ....
1234_3456ABCD  ...
"-12345678AbCd"  ...

似乎在字段的前导字符为“-”时出现引号。为什么会发生这种情况,有没有办法避免这种情况?谢谢!

【问题讨论】:

    标签: python csv apache-spark pyspark


    【解决方案1】:

    您不会使用 CSV 编写器提供的所有选项。它具有quoteMode 参数,该参数采用四个值之一(来自org.apache.commons.csv documentation 的描述:

    • ALL - 引用所有字段
    • MINIMAL(默认)- 引用包含特殊字符的字段,例如分隔符、引号字符或行分隔符中的任何字符
    • NON_NUMERIC - 引用所有非数字字段
    • NONE - 从不引用字段

    如果想避免引用最后一个选项看起来是个不错的选择,不是吗?

    【讨论】:

      猜你喜欢
      • 2017-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多