首页 > 解决方案 > 如何在 csv 文件的字段中使用逗号编写 pyspark 数据帧

问题描述

我有一个 Pyspark 数据框,其中一个字段中有逗号。样本数据:

+--------+------------------------------------------------------------------------------------+
|id      |reason                                                                              |
+--------+------------------------------------------------------------------------------------+
|123-8aab|Request for the added "Hello Ruth, How are, you, doing and Other" abc. Thanks!      |
|125-5afs|Hi Prachi, I added an "XYZA", like josa.coam, row. "Uid to be eligible" for clarity.|
+--------+------------------------------------------------------------------------------------+

当我在 csv 中编写此内容时,数据会溢出到下一列并且未正确表示。我用来写入数据和输出的代码:

df_csv.repartition(1).write.format('csv').option("header", "true").save(
        "s3://{}/report-csv".format(bucket_name), mode='overwrite')

数据在 csv 中的显示方式:

在此处输入图像描述

任何帮助将不胜感激。TIA。

注意:我认为如果该字段只有逗号,则可以正确导出,但是引号和逗号的组合是导致问题的原因。

标签: apache-sparkpysparkapache-spark-sqlexport-to-csv

解决方案


对我有用的是-->

df_csv.repartition(1).write.format('csv').option("header", "true").option("quote", "\"").option("escape", "\"").save("s3://{}/report-csv".format(bucket_name), mode='overwrite')

这篇文章中更详细的解释: Reading csv files with quoted fields contains embedded commas


推荐阅读