Spark - 读取带引号的 csv 文件

问题描述 投票:0回答:1

我们的 csv 文件中有以下内容:

DI_SEQUENCE_NUMBER;DI_OPERATION_TYPE;MANDT;SPRAS;MVGR2;BEZEI;SRC_SYSTEM;LOAD_DATE;ODQ_CHANGEMODE;ODQ_ENTITYCNTR
76;"I";"220";"E";"200";"SAUGNAPF:BX75P:30/60M.FILT;G3/8""AU1/8"";"D16";"20231017T114626";"C";1
77;"I";"220";"E";"201";"COMPOTS AND FRUIT DRINKS";"D16";"20231017T114626";"C";1

第 76 行导致了问题,我们找不到正确的选项来正确读取。导致问题的部分是“SAUGNAPF:BX75P:30/60M.FILT;G3/8”“AU1/8””。生成此 csv 文件的系统原始文本是 SAUGNAPF:BX75P:30/60M.FILT ;G3/8""AU1/8".

我们尝试过: 选项(“报价”,“””) 选项(“逃脱”,“”“)

但运气不好

我们尝试过: 选项(“报价”,“””) 选项(“逃脱”,“”“)

我们希望将此作为输出

1

csv apache-spark double-quotes
1个回答
0
投票

quote
escape
选项在这种情况下似乎不起作用。我读取数据时没有任何显示列值的选项,例如:

“索格纳夫:BX75P:30/60M.FILT;G3/8”“AU1/8””

为了删除开始和结束引号,我使用了 regexp_replace。

spark.read.csv(sep=";", header=True, path=<file_path>) \
     .withColumn("BEZEI", f.regexp_replace("BEZEI", "^[\"]|[\"]$", ''))
© www.soinside.com 2019 - 2024. All rights reserved.