指定された列で出力をバケットします。 指定した場合、出力は Hive のバケットスキームに似たファイル システムにレイアウトされますが、別のバケット ハッシュ関数を使用し、Hive のバケット処理と互換性がありません。
構文
bucketBy(numBuckets, col, *cols)
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
numBuckets |
int | 保存するバケットの数。 |
col |
str、list、またはタプル | 列名、または名前の一覧。 |
*cols |
str、省略可能 | 追加の列名。
colがリストの場合は空にする必要があります。 |
返品
DataFrameWriter
メモ
DataFrameWriter.saveAsTableと組み合わせてファイル ベースのデータ ソースに適用できます。
例示
バケット化されたテーブルに DataFrame を書き込み、読み戻します。
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")