我使用以下代码将数据框导出到 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" ...
当字段的前导字符为“-”时,似乎会出现引号。为什么会发生这种情况?有办法避免这种情况吗?谢谢!
您没有使用 CSV 编写器提供的所有选项。它有quoteMode
参数采用四个值之一(来自org.apache.commons.csv
文档 https://commons.apache.org/proper/commons-csv/apidocs/org/apache/commons/csv/QuoteMode.html_:
-
ALL
- 引用所有字段
-
MINIMAL
(默认) -包含特殊字符的引号字段,例如分隔符、引号字符或行分隔符中的任何字符
-
NON_NUMERIC
- 引用所有非数字字段
-
NONE
- 从不引用字段
如果想避免引用最后一个选项看起来是一个不错的选择,不是吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)