Spark DataFrameReader与DataFrameWriter有效选项列表是否存在?
Spark DataFrameReader 与 DataFrameWriter 可用选项汇总
以下是Spark中常用数据源对应的DataFrameReader和DataFrameWriter有效选项列表,按数据源分类整理:
DataFrameReader 可用选项
CSV 数据源
sep: 字段分隔符,默认值为,header: 是否将首行解析为列名,可选值true/false,默认falseinferSchema: 是否自动推断列的数据类型,可选值true/false,默认falsequote: 字段引用符,默认值为"escape: 转义字符,默认值为\nullValue: 表示空值的字符串,默认空字符串dateFormat: 日期类型的解析格式,例如yyyy-MM-ddtimestampFormat: 时间戳类型的解析格式,例如yyyy-MM-dd HH:mm:ssencoding: 文件编码,例如UTF-8、GBKcomment: 注释行起始字符,遇到以该字符开头的行会被跳过,例如#
Parquet 数据源
mergeSchema: 读取多个Parquet文件时是否合并不同的Schema,可选值true/false,默认falsepathGlobFilter: 路径匹配过滤器,例如*.parquetrecursiveFileLookup: 是否递归查找子目录下的文件,可选值true/false,默认falsemodifiedBefore: 仅读取指定时间之前修改的文件,支持时间戳或日期字符串格式modifiedAfter: 仅读取指定时间之后修改的文件,支持时间戳或日期字符串格式
JDBC 数据源
url: JDBC连接地址,必填项dbtable: 要读取的表名或嵌套查询(需用括号包裹,例如(select * from t where id>100) as sub_t),必填项user: 数据库用户名password: 数据库密码driver: JDBC驱动类名,例如com.mysql.cj.jdbc.Driverfetchsize: 每次从数据库读取的行数,用于控制内存占用partitionColumn: 用于分区读取的列名,需配合lowerBound、upperBound、numPartitions使用lowerBound: 分区列的下限值upperBound: 分区列的上限值numPartitions: 读取数据的分区数
JSON 数据源
primitivesAsString: 是否将原始类型(int、long等)解析为字符串,可选值true/false,默认falseallowComments: 是否允许JSON中包含注释,可选值true/false,默认falseallowUnquotedFieldNames: 是否允许未加引号的字段名,可选值true/false,默认falseallowSingleQuotes: 是否允许单引号代替双引号,可选值true/false,默认truemultiLine: 是否允许单个JSON对象跨多行,可选值true/false,默认false
DataFrameWriter 可用选项
CSV 数据源
sep: 字段分隔符,默认值为,header: 是否写入首行列名,可选值true/false,默认falsequote: 字段引用符,默认值为"escape: 转义字符,默认值为\nullValue: 空值对应的写入字符串,默认空字符串dateFormat: 日期类型的输出格式,例如yyyy-MM-ddtimestampFormat: 时间戳类型的输出格式,例如yyyy-MM-dd HH:mm:ssencoding: 文件编码,默认UTF-8quoteAll: 是否给所有字段添加引用符,可选值true/false,默认falsemode: 写入模式,可选append(追加)/overwrite(覆盖)/ignore(忽略)/error(目标存在则报错,默认值)
Parquet 数据源
mergeSchema: 写入时是否合并Schema,可选值true/false,默认falsecompression: 压缩格式,可选none/snappy/gzip/lzo,默认snappymode: 写入模式,同CSV的mode选项path: 写入的目标路径(若未通过save(path)指定则需设置)
JDBC 数据源
url: JDBC连接地址,必填项dbtable: 要写入的表名,必填项user: 数据库用户名password: 数据库密码driver: JDBC驱动类名batchsize: 每次批量写入的行数,默认1000isolationLevel: 事务隔离级别,可选NONE/READ_COMMITTED/READ_UNCOMMITTED/REPEATABLE_READ/SERIALIZABLE,默认READ_COMMITTEDmode: 写入模式,同CSV的mode选项truncate: 当mode为overwrite时,是否用TRUNCATE TABLE代替DROP TABLE后重建,可选值true/false,默认false
JSON 数据源
compression: 压缩格式,可选none/snappy/gzip/deflatedateFormat: 日期输出格式timestampFormat: 时间戳输出格式mode: 写入模式,同CSV的mode选项multiLine: 是否将整个DataFrame写入为单个多行JSON对象,可选值true/false,默认false
内容的提问来源于stack exchange,提问作者hsfear
相关产品推荐
相关产品推荐

