You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Spark DataFrame读取数据时如何保留输入中的双引号?

解决方案:Spark读取CSV时完整保留含特殊字符的字段内容

问题根源

  • 配置escape="\""时,Spark会自动将字段内的""转义为单个",破坏原内容格式
  • 未配置escape时,Spark无法识别""为内容的一部分,会把字段内的逗号当作分隔符,导致字段被错误拆分

正确读取代码

要完整保留原字段(包括外部引号、内部双引号对和逗号),使用以下配置读取:

df = spark.read \
  .option("header", "false") \
  .option("quote", '"') \
  .option("escape", "\u0001") \
  .option("keepQuotes", "true") \
  .csv(output_path)

参数作用说明

  • quote="\"":指定双引号为字段包裹符,确保引号内的所有内容(包括逗号)被识别为单个字段,不会被拆分
  • escape="\u0001":选用一个文件中不存在的特殊字符作为转义符,避免Spark将字段内的""解析为转义字符,从而保留原内容中的双引号对
  • keepQuotes="true":保留字段外部的双引号,保证读取结果与原内容完全一致

配置后,目标字段会完整保留为:"The Good, the Bad and the Ugly (From ""The Good, the Bad and the Ugly"")",且不会在逗号处被拆分。

内容的提问来源于stack exchange,提问作者Regina Remenyi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 10:04:51