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

Spark 3.4.0如何读取带引号及转义字符的CSV?

Spark CSV读写的正确配置方案

针对你遇到的CSV读写问题,分读取和写入两个阶段配置对应选项即可解决:

一、读取CSV时的配置

原CSV字段用双引号包裹,且部分字段前带空格,配置以下选项可确保正确解析:

sparkSession.read()
    .option("quote", "\"")          // 指定字段包裹符为双引号
    .option("ignoreLeadingWhiteSpace", "true")  // 忽略字段开头的空格
    .option("header", "false")      // 你的CSV无表头,可按需调整
    .csv("trouble.csv");

配置后读取得到的DataFrame数据即为:1,2,Learn more https://example.com

二、写入CSV时的配置

要实现去掉引号、不转义URL中的斜杠,同时输出带空格的分隔符,配置如下:

df.write()
    .option("quote", "NONE")        // 禁用字段包裹引号
    .option("escapeQuotes", "false")// 关闭自动转义特殊字符的功能
    .option("sep", ", ")            // 设置分隔符为逗号加空格
    .option("header", "false")      // 按需决定是否输出表头
    .mode(SaveMode.Overwrite)
    .csv("output.csv");

配置后写入结果会是:1, 2, Learn more https://example.com,不会出现URL被转义成https:\/\/example.com的问题。

关键选项说明

  • quote="NONE":彻底关闭字段的引号包裹,避免输出不必要的引号
  • escapeQuotes=false:阻止Spark自动转义字段中的特殊字符(比如URL里的斜杠),仅当字段包含分隔符时才需要开启该功能
  • ignoreLeadingWhiteSpace=true:读取时自动去除字段前的空格,保证数据整洁

内容的提问来源于stack exchange,提问作者Bryan Erazo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 06:04:57