将给定列的输出存储桶。 如果指定,则输出在类似于 Hive 的存储桶方案的文件系统上布局,但具有不同的存储桶哈希函数,并且与 Hive 的存储桶不兼容。
Syntax
bucketBy(numBuckets, col, *cols)
参数
| 参数 | 类型 | Description |
|---|---|---|
numBuckets |
int | 要保存的存储桶数。 |
col |
str、list 或 tuple | 列名或名称列表。 |
*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")