結合( DataFrame )
パーティションが正確にnumPartitions個である新しいDataFrameを返します。
構文
coalesce(numPartitions: int)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
| 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|
# +---------+