パーティションが正確に numPartitions された新しい DataFrame を返します。
構文
coalesce(numPartitions: int)
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
numPartitions |
int | は、パーティションのターゲット数を指定します。 |
返品
DataFrame
メモ
RDD で定義された結合と同様に、この操作では依存関係が狭くなります。たとえば、1000 個のパーティションから 100 個のパーティションに移動した場合、シャッフルは行われません。代わりに、100 個の新しいパーティションごとに現在のパーティションの 10 が要求されます。 より多くのパーティションが要求された場合は、現在の数のパーティションにとどまります。
ただし、numPartitions = 1 など、抜本的な結合を行っている場合は、計算が必要な数よりも少ないノードで行われる可能性があります (たとえば、numPartitions = 1 の場合は 1 つのノード)。 これを回避するには、repartition() を呼び出します。 これによりシャッフル ステップが追加されますが、現在のアップストリーム パーティションは (現在のパーティション分割に従って) 並列に実行されます。
例示
from pyspark.sql import functions as sf
spark.range(0, 10, 1, 3).coalesce(1).select(
sf.spark_partition_id().alias("partition")
).distinct().sort("partition").show()
# +---------+
# |partition|
# +---------+
# | 0|
# +---------+