將輸出依給定欄位分組。 若指定,輸出會在檔案系統中呈現,類似 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")