bucketBy

指定された列で出力をバケットします。 指定した場合、出力は 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")