メインコンテンツまでスキップ

repartitionById

指定されたパーティショニング式に基づいてパーティション分割された新しいDataFrameを返します。結果として得られるDataFrameは、列識別子によって分割されます。

構文

repartitionById(numPartitions: int, *cols: "ColumnOrName")

パラメーター

パラメーター

Type

説明

numPartitions

int

目標とするパーティション数。

cols

文字列または列

パーティショニング列。

戻り値

DataFrame: 再分割されたDataFrame 。

注意

少なくとも1つのパーティション分割式を指定する必要があります。これは分散処理における再パーティション化に似ていますが、各パーティション内の行の順序を保持します。

これは実験的なAPIです。

Python
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|
# +---+-----+--------------------+