coalesce (DataFrame)

Tam olarak numPartitions bölümleri olan yeni bir DataFrame döndürür.

Sözdizimi

coalesce(numPartitions: int)

Parametreler

Parametre Türü Açıklama
numPartitions Int hedef bölüm sayısını belirtin.

İadeler

DataFrame

Notlar

RdD üzerinde tanımlanan birleşime benzer şekilde, bu işlem dar bir bağımlılıkla sonuçlanır; örneğin, 1000 bölümden 100 bölüme geçerseniz, 100 yeni bölümün her biri geçerli bölümlerden 10'unu talep eder. Daha fazla sayıda bölüm istenirse, geçerli bölüm sayısında kalır.

Ancak, örneğin numPartitions = 1 için büyük bir birleşim yapıyorsanız, bu işlem hesaplamanızın istediğinizden daha az düğümde gerçekleşmesine neden olabilir (örneğin, numPartitions = 1 durumunda bir düğüm). Bunu önlemek için repartition() öğesini çağırabilirsiniz. Bu bir karıştırma adımı ekler, ancak geçerli yukarı akış bölümlerinin paralel olarak yürütüleceği anlamına gelir (geçerli bölümleme ne olursa olsun).

Örnekler

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