基になるデータ ソースの出力オプションを追加します。 使用可能なオプションについては、「 オプション」を参照してください。
構文
option(key, value)
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
key |
str | オプション キー。 |
value |
str、int、float、または bool | オプション値。 |
オプション
次の表に、ライター オプションをいくつか示します。
| 鍵 | フォーマット | 説明 |
|---|---|---|
arrayElementName |
XML | 明示的な名前を持たない配列要素の要素名。 既定値: item。
xml (DataFrameWriter) に適用されます。 |
attributePrefix |
XML | XML 属性に対応するフィールド名の前に付加されるプレフィックス。 既定値: _。
xml (DataFrameWriter) に適用されます。 |
avroSchema |
Avro | JSON 文字列としての完全な Avro スキーマ。 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 (DataFrameWriter)、parquet (DataFrameWriter)、text (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)、text (DataFrameWriter) に適用されます。 |
mergeSchema |
Delta Lake | 書き込み操作でスキーマの進化を有効にするかどうかを指定します。 ソース DataFrame の新しい列がターゲット テーブル スキーマに追加されます。 バッチおよびストリーミングの追加に適用されます。 テーブル スキーマの更新に適用されます。 |
nullValue |
CSV | null 値に対して書き込まれた文字列。 既定値: ""。
csv (DataFrameWriter) に適用されます。 |
nullValue |
XML | null 値に対して書き込まれた文字列。 既定値: null。
nullに設定すると、null フィールドの属性と子要素は省略されます。
xml (DataFrameWriter) に適用されます。 |
overwriteSchema |
Delta Lake | 上書き時にテーブル スキーマとパーティション分割を置き換えるかどうか。
replaceWhereなしでmode("overwrite")が必要です。
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操作でのべき等書き込みのアプリケーションを識別する一意の文字列。 複数の Delta Lake テーブルへの正確な 1 回の書き込みを保証するには、 txnVersion と共に使用します。
べき等テーブル書き込みにforeachBatchを使用するために適用されます。 |
txnVersion |
Delta Lake |
foreachBatch操作でのべき等書き込みのトランザクション バージョンとして使用される単調に増加する数。 複数の Delta Lake テーブルへの正確な 1 回の書き込みを保証するには、 txnAppId と共に使用します。
べき等テーブル書き込みにforeachBatchを使用するために適用されます。 |
userMetadata |
Delta Lake、Apache Iceberg | 書き込み操作のコミット メタデータに追加されたユーザー定義文字列。
DESCRIBE HISTORYの出力に表示されます。
カスタム メタデータを使用したテーブルのエンリッチに適用されます。 |
validateName |
XML | 列名が有効な XML 要素識別子でない場合に例外をスローするかどうか。 既定値: true。
xml (DataFrameWriter) に適用されます。 |
valueTag |
XML | 属性または子要素を持つ XML 要素の文字データに使用されるフィールド名。 既定値: _VALUE。
xml (DataFrameWriter) に適用されます。 |
返品
DataFrameWriter
例示
nullValue オプションが設定された CSV ファイルに DataFrame を書き込みます。
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|
# +---+------------+