桶狀

將輸出依給定欄位分組。 若指定,輸出會在檔案系統中呈現,類似 Hive 的分桶分類方案,但使用不同的分桶雜湊函式,且不相容於 Hive 的分桶分桶。

語法

bucketBy(numBuckets, col, *cols)

參數

參數 類型 說明
numBuckets int 要節省的桶數。
col str、list 或 tuple 欄位名稱,或是名字列表。
*cols 力量,選用 其他欄位名稱。 如果是清單, col 則必須是空的。

退貨

DataFrameWriter

Notes

適用於結合 DataFrameWriter.saveAsTable檔案資料來源的 。

Examples

把一個 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")