DataFrameの内容を指定したテーブルとして保存します。 テーブルが既に存在する場合、動作は mode パラメーターに依存します (既定では例外がスローされます)。
modeが'overwrite'されている場合、DataFrameのスキーマは既存のテーブル スキーマと一致する必要はありません。
構文
saveAsTable(name, format=None, mode=None, partitionBy=None, **options)
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
name |
str | テーブル名。 |
format |
str、省略可能 | 保存に使用する形式。 |
mode |
str、省略可能 | データが既に存在する場合の動作。 使用できる値は、 'append'、 'overwrite'、 'error' 、または 'errorifexists' (既定値)、および 'ignore'です。 |
partitionBy |
str または list、省略可能 | パーティション分割列の名前。 |
**options |
辞書 | 追加の文字列オプション。 |
返品
なし
メモ
modeが'append'されている場合、テーブルが既に存在する場合は、その形式とオプションが使用されます。
DataFrameWriter.insertIntoとは異なり、DataFrameWriter.saveAsTableでは列名を使用して正しい列の位置を検索します。
例示
DataFrame からテーブルを作成し、読み戻します。
spark.sql("DROP TABLE IF EXISTS tblA")
spark.createDataFrame([
(100, "Alice"), (120, "Bob"), (140, "Tom")],
schema=["age", "name"]
).write.saveAsTable("tblA")
spark.read.table("tblA").sort("age").show()
# +---+------------+
# |age| name|
# +---+------------+
# |100|Alice|
# |120|Bob|
# |140| Tom|
# +---+------------+
spark.sql("DROP TABLE tblA")