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”