指定されたパーティション分割式によってパーティション分割された新しい DataFrame を返します。 結果の DataFrame は、列識別子によってパーティション分割されます。
構文
repartitionById(numPartitions: int, *cols: "ColumnOrName")
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
numPartitions |
int | パーティションのターゲット数。 |
cols |
str または Column | パーティション分割列。 |
返品
DataFrame: 再パーティション分割されたデータフレーム。
メモ
少なくとも 1 つの partition-by 式を指定する必要があります。 これはディストリビューションでのパーティション分割に似ていますが、各パーティション内の行の順序は保持されます。
これは試験的な API です。
例示
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|
# +---+-----+--------------------+