apache-spark - 如何在 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。
注意:我认为如果该字段只有逗号,则可以正确导出,但是引号和逗号的组合是导致问题的原因。
解决方案
对我有用的是-->
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
推荐阅读
- android - MvRX DrawerLayout + 通常需要更多示例
- oracle - Oracle ODBC 驱动程序,对内存位置的无效访问
- node.js - npm @types 和 TypeScript 版本
- python - 我如何绝对列表中的负数?
- asp.net - asp.net core 现有用户确认邮箱,或允许更改邮箱地址
- virtuoso - “监视器:高磁盘读取”同时对 virtuoso 本地端点执行查询
- javascript - 有没有办法在 JSON 响应的数组中选择一个数组,而不使用标准数字索引 (JS)
- python - 在 Python 3 中使用魔法方法计算欧几里得距离
- c# - c# - GetForegroundWindow 某台电脑 获取代码有误?
- magento - Mage_Core_Exception:无效的块类型 - 块仅在开发环境中工作