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

結合( DataFrame )

パーティションが正確にnumPartitions個である新しいDataFrameを返します。

構文

coalesce(numPartitions: int)

パラメーター

パラメーター

Type

説明

numPartitions

int

パーティションの目標数を指定します。

戻り値

DataFrame

注意

RDD で定義された coalesce と同様に、この操作は狭い依存関係をもたらします。たとえば、パーティション数を 1000 から 100 に変更した場合、シャッフルは行われず、代わりに新しい 100 個のパーティションそれぞれが現在のパーティションのうち 10 個を占有します。より多くのパーティションが要求された場合でも、現在のパーティション数は維持されます。

ただし、numPartitions = 1 のように大幅な統合を行う場合、計算が想定よりも少ないノードで実行される可能性があります (numPartitions = 1 の場合は 1 つのノード)。これを回避するには、repartition() 関数を呼び出すことができます。これによりシャッフルが追加されますが、現在のアップストリームパーティションは(現在のパーティショニングに従って)並列で実行されることを意味します。

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