バケット別
指定された列に基づいて出力をバケット化します。指定されている場合、出力はファイルシステム上にHiveのバケット方式と同様に配置されますが、バケットハッシュ関数が異なり、Hiveのバケット方式とは互換性がありません。
構文
bucketBy(numBuckets, col, *cols)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
| int | 保存するバケットの数。 |
| 文字列、リスト、またはタプル | 列名、または列名のリスト。 |
| 文字列、オプション | 追加の列名。 |
戻り値
DataFrameWriter
注意
DataFrameWriter.saveAsTableと組み合わせてファイルベースのデータソースに適用できます。
例
DataFrameバケット化されたテーブルに書き込み、それを読み戻します。
Python
spark.sql("DROP TABLE IF EXISTS bucketed_table")
spark.createDataFrame([
(100, "Alice"), (120, "Alice"), (140, "Bob")],
schema=["age", "name"]
).write.bucketBy(2, "name").mode("overwrite").saveAsTable("bucketed_table")
spark.read.table("bucketed_table").sort("age").show()
# +---+------------+
# |age| name|
# +---+------------+
# |100|Alice|
# |120|Alice|
# |140| Bob|
# +---+------------+
spark.sql("DROP TABLE bucketed_table")