メインコンテンツまでスキップ

バケット別

指定された列に基づいて出力をバケット化します。指定されている場合、出力はファイルシステム上にHiveのバケット方式と同様に配置されますが、バケットハッシュ関数が異なり、Hiveのバケット方式とは互換性がありません。

構文

bucketBy(numBuckets, col, *cols)

パラメーター

パラメーター

Type

説明

numBuckets

int

保存するバケットの数。

col

文字列、リスト、またはタプル

列名、または列名のリスト。

*cols

文字列、オプション

追加の列名。colがリストの場合は空でなければなりません。

戻り値

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")