我有几个非常大的csv文件(几GB)使用双引号,即它看起来像这样
first field,"second, field","third ""field"""
出于性能原因,我想将它们转换为镶木地板文件,然后执行进一步的分析和转换步骤。为此,我使用pyspark功能构建来读取csv,即
df = spark.read.csv(file_name, schema=schema, escape='"')
df.write.parquet(base_dir+"/parquet/"+name, partitionBy="year")
在读取csv for spark时,我找不到双引号的任何特定选项,因为你可以看到我使用了“作为转义字符。
到目前为止它似乎工作,因为texfile中没有换行符(spark csv reader不支持此功能),但是我有一种预感,这可能不是处理它的正确方法。 有什么想法或建议吗?
由于文件非常大,性能也是一个问题,因此使用rdd和map似乎会带来高性能成本。