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

Spark/Scala读取CSV文件时如何处理单元格内的逗号

Spark/Scala读取含内置逗号的CSV文件解决方案

你提供的示例CSV属于标准RFC4180格式规范,所有字段默认用双引号包裹,字段内部的逗号、转义双引号都符合通用CSV格式要求,只需正确配置Spark CSV读取参数即可避免单元格内部逗号被误识别为字段分隔符。

核心配置参数

  • 启用表头读取:header设置为true,识别第一行作为字段名
  • 指定字段包裹符:quote设置为",明确双引号包裹的全部内容为单个完整单元格
  • 指定转义符:escape设置为",匹配CSV中用两个双引号转义原义双引号的规则
  • 可选配置:若需要自动推断字段类型,可设置inferSchema为true

完整代码示例

import org.apache.spark.sql.SparkSession

object CsvParseDemo {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder()
      .appName("CSV Parse Test")
      .master("local[*]") // 本地调试时使用,集群运行请删除该行
      .getOrCreate()
      
    val df = spark.read
      .option("header", "true")
      .option("quote", "\"")
      .option("escape", "\"")
      .option("charset", "UTF-8")
      // 可选:自动推断字段类型,大数据量场景下建议手动指定schema提高性能
      .option("inferSchema", "true")
      .csv("替换为你的CSV文件实际路径")
      
    // 验证读取结果,false参数表示不截断字符串内容,可完整查看地址字段
    df.select("address").show(false)
    
    spark.stop()
  }
}

结果验证

运行代码后输出的address字段会保留完整的原地址内容,包含逗号的地址不会被拆分为多列,字段内转义的双引号也会被正确解析为原义双引号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:24:02