samenvoegen (DataFrame)

Retourneert een nieuw DataFrame met exact numPartitions partities.

Syntaxis

coalesce(numPartitions: int)

Parameterwaarden

Kenmerk Typ Beschrijving
numPartitions int geef het doelaantal partities op.

Retouren

DataFrame

Aantekeningen

Net als bij de samenvoeging die is gedefinieerd op een RDD, resulteert deze bewerking in een smalle afhankelijkheid, bijvoorbeeld als u van 1000 partities naar 100 partities gaat, is er geen willekeurige volgorde, in plaats van elk van de 100 nieuwe partities 10 van de huidige partities. Als er een groter aantal partities wordt aangevraagd, blijft het huidige aantal partities behouden.

Als u echter een drastische samenvoeging uitvoert, bijvoorbeeld naar numPartitions = 1, kan dit ertoe leiden dat uw berekening plaatsvindt op minder knooppunten dan u wilt (bijvoorbeeld één knooppunt in het geval van numPartitions = 1). U kunt dit voorkomen door repartition() aan te roepen. Hiermee wordt een willekeurige stap toegevoegd, maar dit betekent dat de huidige upstream-partities parallel worden uitgevoerd (ongeacht wat de huidige partitionering is).

Examples

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