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

Spark DataFrameReader与DataFrameWriter有效选项列表是否存在?

Spark DataFrameReader 与 DataFrameWriter 可用选项汇总

以下是Spark中常用数据源对应的DataFrameReader和DataFrameWriter有效选项列表,按数据源分类整理:


DataFrameReader 可用选项

CSV 数据源

  • sep: 字段分隔符,默认值为,
  • header: 是否将首行解析为列名,可选值true/false,默认false
  • inferSchema: 是否自动推断列的数据类型,可选值true/false,默认false
  • quote: 字段引用符,默认值为"
  • escape: 转义字符,默认值为\
  • nullValue: 表示空值的字符串,默认空字符串
  • dateFormat: 日期类型的解析格式,例如yyyy-MM-dd
  • timestampFormat: 时间戳类型的解析格式,例如yyyy-MM-dd HH:mm:ss
  • encoding: 文件编码,例如UTF-8、GBK
  • comment: 注释行起始字符,遇到以该字符开头的行会被跳过,例如#

Parquet 数据源

  • mergeSchema: 读取多个Parquet文件时是否合并不同的Schema,可选值true/false,默认false
  • pathGlobFilter: 路径匹配过滤器,例如*.parquet
  • recursiveFileLookup: 是否递归查找子目录下的文件,可选值true/false,默认false
  • modifiedBefore: 仅读取指定时间之前修改的文件,支持时间戳或日期字符串格式
  • modifiedAfter: 仅读取指定时间之后修改的文件,支持时间戳或日期字符串格式

JDBC 数据源

  • url: JDBC连接地址,必填项
  • dbtable: 要读取的表名或嵌套查询(需用括号包裹,例如(select * from t where id>100) as sub_t),必填项
  • user: 数据库用户名
  • password: 数据库密码
  • driver: JDBC驱动类名,例如com.mysql.cj.jdbc.Driver
  • fetchsize: 每次从数据库读取的行数,用于控制内存占用
  • partitionColumn: 用于分区读取的列名,需配合lowerBound、upperBound、numPartitions使用
  • lowerBound: 分区列的下限值
  • upperBound: 分区列的上限值
  • numPartitions: 读取数据的分区数

JSON 数据源

  • primitivesAsString: 是否将原始类型(int、long等)解析为字符串,可选值true/false,默认false
  • allowComments: 是否允许JSON中包含注释,可选值true/false,默认false
  • allowUnquotedFieldNames: 是否允许未加引号的字段名,可选值true/false,默认false
  • allowSingleQuotes: 是否允许单引号代替双引号,可选值true/false,默认true
  • multiLine: 是否允许单个JSON对象跨多行,可选值true/false,默认false

DataFrameWriter 可用选项

CSV 数据源

  • sep: 字段分隔符,默认值为,
  • header: 是否写入首行列名,可选值true/false,默认false
  • quote: 字段引用符,默认值为"
  • escape: 转义字符,默认值为\
  • nullValue: 空值对应的写入字符串,默认空字符串
  • dateFormat: 日期类型的输出格式,例如yyyy-MM-dd
  • timestampFormat: 时间戳类型的输出格式,例如yyyy-MM-dd HH:mm:ss
  • encoding: 文件编码,默认UTF-8
  • quoteAll: 是否给所有字段添加引用符,可选值true/false,默认false
  • mode: 写入模式,可选append(追加)/overwrite(覆盖)/ignore(忽略)/error(目标存在则报错,默认值)

Parquet 数据源

  • mergeSchema: 写入时是否合并Schema,可选值true/false,默认false
  • compression: 压缩格式,可选none/snappy/gzip/lzo,默认snappy
  • mode: 写入模式,同CSV的mode选项
  • path: 写入的目标路径(若未通过save(path)指定则需设置)

JDBC 数据源

  • url: JDBC连接地址,必填项
  • dbtable: 要写入的表名,必填项
  • user: 数据库用户名
  • password: 数据库密码
  • driver: JDBC驱动类名
  • batchsize: 每次批量写入的行数,默认1000
  • isolationLevel: 事务隔离级别,可选NONE/READ_COMMITTED/READ_UNCOMMITTED/REPEATABLE_READ/SERIALIZABLE,默认READ_COMMITTED
  • mode: 写入模式,同CSV的mode选项
  • truncate: 当mode为overwrite时,是否用TRUNCATE TABLE代替DROP TABLE后重建,可选值true/false,默认false

JSON 数据源

  • compression: 压缩格式,可选none/snappy/gzip/deflate
  • dateFormat: 日期输出格式
  • timestampFormat: 时间戳输出格式
  • mode: 写入模式,同CSV的mode选项
  • multiLine: 是否将整个DataFrame写入为单个多行JSON对象,可选值true/false,默认false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:05:32