coalesce (DataFrame)

パーティションが正確に 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|
# +---------+