Pyspark:读取带有双引号和逗号的字段的csv文件

Posted

技术标签:

【中文标题】Pyspark:读取带有双引号和逗号的字段的csv文件【英文标题】:Pyspark : Reading csv files with fields having double quotes and comas 【发布时间】:2020-08-27 04:33:08 【问题描述】:

我有一个 csv 文件,我正在通过 pyspark 读取它并加载到 postgresql 中。它的一个领域是在字符串中有逗号和双引号的字符串。像下面的例子 -

1. "RACER ""K"", P.L. 9"
2. "JENIS, B. S. ""N"" JENIS, F. T. ""B"" 5"

Pyspark 正在解析它,如下所示。这是导致问题的原因,因为当我将数据加载到 postgresql 并且脚本失败时,它会混淆值/列。

1. '\"RACER \"\"K\"\"'
2. '\"JENIS, B. S. \"\"N\"\" JENIS'

我使用的是火花 2.42。在 pyspark 中如何处理这种情况? 基本上,如果逗号或双引号出现在双引号内,我想编程以忽略它。

【问题讨论】:

这对我有用 - .option("quote", "\"") .option("escape", "\"") 【参考方案1】:

在读取和加载到 postgresql 之前,您可以尝试使用 pandas 删除逗号和双引号。

你可以使用str.replace:

df['column_name'] = df['column_name'].str.replace(r"[\"\',]", '')

【讨论】:

以上是关于Pyspark:读取带有双引号和逗号的字段的csv文件的主要内容,如果未能解决你的问题,请参考以下文章

我的 CSV 文件带有双引号括起来的字段 - 无法识别数值“12131”

读取包含嵌入逗号的引用字段的 csv 文件

hive导入csv文件,字段中双引号内有逗号

我们如何使用 python sdk 在 Apache Beam 中读取带有附件的 CSV 文件?

CSV文件格式要求

csv文件