回傳一個新的 DataFrame,並依給定的分割表達式劃分。 所得資料框依欄位識別碼進行分割。
語法
repartitionById(numPartitions: int, *cols: "ColumnOrName")
參數
| 參數 | 類型 | 說明 |
|---|---|---|
numPartitions |
int | 目標分區數。 |
cols |
str 或 Column | 欄位分割。 |
退貨
DataFrame: 重新分割後的資料幀。
Notes
必須指定至少一個分割表達式。 這與分布中的重劃分類似,但保留了每個劃分中列的順序。
這是一個實驗性的 API。
Examples
from pyspark.sql import functions as sf
spark.createDataFrame(
[(14, "Tom"), (23, "Alice"), (16, "Bob"), (18, "Alice"), (21, "Alice")],
["age", "name"]
).repartitionById(2, "name").select(
"age", "name", sf.spark_partition_id()
).show()
# +---+-----+--------------------+
# |age| name|SPARK_PARTITION_ID()|
# +---+-----+--------------------+
# | 14| Tom| 0|
# | 23|Alice| 1|
# | 18|Alice| 1|
# | 21|Alice| 1|
# | 16| Bob| 0|
# +---+-----+--------------------+