选项 (DataFrameWriter)

为基础数据源添加输出选项。 有关某些可用选项,请参阅 “选项”。

Syntax

option(key, value)

参数

参数 类型 说明
key str 选项键。
value str、int、float 或 bool 选项值。

选项

下表包含一些编写器选项:

Key 格式 说明
arrayElementName XML 没有显式名称的数组元素的元素名称。 默认值:item。 适用于 xml(DataFrameWriter)。
attributePrefix XML 前面追加到与 XML 属性对应的字段名称的前缀。 默认值:_。 适用于 xml(DataFrameWriter)。
avroSchema Avro 完整的 Avro 架构作为 JSON 字符串。 使用此选项可将 Spark SQL 类型转换为特定的 Avro 类型。 适用于 Avro 文件
charToEscapeQuoteEscaping CSV 与引号字符不同时,用于转义转义字符的字符。 默认值: \0 (未启用)。 适用于 csv(DataFrameWriter)。
clusterByAuto Delta Lake 是否启用自动液体聚类分析,其中Azure Databricks根据查询模式选择聚类分析列。 仅对 . 有效。mode("overwrite") 不能与模式一起使用 append 。 默认值:false。 在 Databricks Runtime 16.4 及更高版本中可用。 适用于 对表使用液体聚类分析
compression CSV、JSON、ORC、Parquet、Text、XML 编写时要使用的压缩编解码器。 有效值因格式而异。 适用于 csv(DataFrameWriter)、json(DataFrameWriter)orc(DataFrameWriterparquet(DataFrameWriter)、文本(DataFrameWriter)xml(DataFrameWriter)
dateFormat CSV、JSON、XML 日期列值的格式字符串。 默认值:yyyy-MM-dd。 适用于 csv(DataFrameWriter)json(DataFrameWriter)xml(DataFrameWriter)。
declaration XML 在每个输出文件的顶部写入的 XML 声明字符串。 设置为空字符串以禁止声明。 默认值:version="1.0" encoding="UTF-8" standalone="yes"。 适用于 xml(DataFrameWriter)。
emptyValue CSV 为空(非 null)值编写的字符串。 默认值:""。 适用于 csv(DataFrameWriter)。
encoding CSV、JSON、XML 输出文件的字符编码。 默认值:UTF-8。 适用于 csv(DataFrameWriter)json(DataFrameWriter)xml(DataFrameWriter)。
escape CSV 用于转义带引号值的字符。 默认值:\。 适用于 csv(DataFrameWriter)。
escapeQuotes CSV 是否转义带引号字段值内的引号字符。 默认值:true。 适用于 csv(DataFrameWriter)。
header CSV 是否将列名称写入输出的第一行。 默认值:false。 适用于 csv(DataFrameWriter)。
ignoreLeadingWhiteSpace CSV 是否在写入时从值中剪裁前导空格。 默认值:false。 适用于 csv(DataFrameWriter)。
ignoreNullFields JSON 是否省略 JSON 输出中具有 null 值的字段。 默认值:值为 spark.sql.jsonGenerator.ignoreNullFields. 适用于 json (DataFrameWriter)。
ignoreTrailingWhiteSpace CSV 是否在写入时从值中剪裁尾随空格。 默认值:false。 适用于 csv(DataFrameWriter)。
lineSep CSV、JSON、文本 记录之间使用的行分隔符字符串。 默认值:\n。 适用于 csv(DataFrameWriter)json(DataFrameWriter)文本(DataFrameWriter)。
mergeSchema Delta Lake 是否为写入操作启用架构演变。 源 DataFrame 中的新列将添加到目标表架构。 适用于批处理和流式处理追加。 适用于 更新表架构
nullValue CSV 为 null 值编写的字符串。 默认值:""。 适用于 csv(DataFrameWriter)。
nullValue XML 为 null 值编写的字符串。 默认值:null。 如果设置为 nullnull 字段,则省略 null 字段的属性和子元素。 适用于 xml(DataFrameWriter)。
overwriteSchema Delta Lake 是否在覆盖时替换表架构和分区。 需要 mode("overwrite") 没有 replaceWhere。 不能与 partitionOverwriteMode 一起使用。 适用于 更新表架构
partitionOverwriteMode Delta Lake 分区覆盖模式。 将其设置为 dynamic 仅覆盖包含新数据的分区,使所有其他分区保持不变。 旧模式;无服务器计算或 Databricks SQL 不支持。 适用于 选择性地使用 Delta Lake 覆盖数据
quote CSV 用于引用包含分隔符的字段值的字符。 默认值:"。 适用于 csv(DataFrameWriter)。
quoteAll CSV 是否将所有字段值括在引号中,而不考虑内容。 默认值:false。 适用于 csv(DataFrameWriter)。
recordName Avro 输出 Avro 架构中的顶级记录名称。 默认值:topLevelRecord。 适用于 Avro 文件
recordNamespace Avro 输出 Avro 架构中顶级记录的命名空间。 默认值:""。 适用于 Avro 文件
replaceWhere Delta Lake 谓词表达式。 以原子方式仅覆盖与谓词匹配的记录。 适用于 选择性地使用 Delta Lake 覆盖数据
rootTag XML 包装输出中所有行元素的根元素标记。 默认值:ROWS。 适用于 xml(DataFrameWriter)。
rowTag XML 表示输出中的行的元素标记。 默认值:ROW。 适用于 xml(DataFrameWriter)。
sep CSV 字段分隔符字符。 默认值:,。 适用于 csv(DataFrameWriter)。
timestampFormat CSV、JSON、XML 时间戳列值的格式字符串。 默认值:yyyy-MM-dd'T'HH:mm:ss[.SSS][XXX]。 适用于 csv(DataFrameWriter)json(DataFrameWriter)xml(DataFrameWriter)。
txnAppId Delta Lake 用于标识应用程序中幂等写入 foreachBatch 操作的应用程序的唯一字符串。 与 一 txnVersion 起使用,确保对多个 Delta Lake 表进行恰好一次的写入。 foreachBatch适用于幂等表写入
txnVersion Delta Lake 单调增加的数字,用作操作中幂等写入的 foreachBatch 事务版本。 与 一 txnAppId 起使用,确保对多个 Delta Lake 表进行恰好一次的写入。 foreachBatch适用于幂等表写入
userMetadata Delta Lake,Apache Iceberg 追加到写入操作的提交元数据中的用户定义的字符串。 在 . 的 DESCRIBE HISTORY输出中可见 适用于 使用自定义元数据扩充表
validateName XML 如果列名不是有效的 XML 元素标识符,是否引发异常。 默认值:true。 适用于 xml(DataFrameWriter)。
valueTag XML 用于 XML 元素中也具有属性或子元素的字符数据的字段名称。 默认值:_VALUE。 适用于 xml(DataFrameWriter)。

退货

DataFrameWriter

示例

使用选项集将数据帧写入 CSV 文件中 nullValue

import tempfile
with tempfile.TemporaryDirectory(prefix="option") as d:
    df = spark.createDataFrame([(100, None)], "age INT, name STRING")
    df.write.option("nullValue", "Alice").mode("overwrite").format("csv").save(d)

    spark.read.schema(df.schema).format('csv').load(d).show()
    # +---+------------+
    # |age|        name|
    # +---+------------+
    # |100|Alice|
    # +---+------------+