Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt einen neuen DataFrame zurück, der genau numPartitions Partitionen enthält.
Syntax
coalesce(numPartitions: int)
Parameter
| Parameter | Typ | Beschreibung |
|---|---|---|
numPartitions |
int | Geben Sie die Zielanzahl der Partitionen an. |
Rückkehr
DataFrame
Hinweise
Ähnlich wie bei einer RDD-Definition führt dieser Vorgang zu einer engen Abhängigkeit, z. B. wenn Sie von 1000 Partitionen zu 100 Partitionen wechseln, gibt es keinen Shuffle, statt jeder der 100 neuen Partitionen 100 der aktuellen Partitionen beansprucht 10 der aktuellen Partitionen. Wenn eine größere Anzahl von Partitionen angefordert wird, verbleibt sie bei der aktuellen Anzahl von Partitionen.
Wenn Sie jedoch eine drastische Koppierung durchführen, z. B. um numPartitions = 1, kann dies dazu führen, dass die Berechnung auf weniger Knoten erfolgt, als Sie möchten (z. B. einen Knoten im Fall von numPartitions = 1). Um dies zu vermeiden, können Sie repartition() aufrufen. Dadurch wird ein Shuffle-Schritt hinzugefügt, bedeutet jedoch, dass die aktuellen Upstreampartitionen parallel ausgeführt werden (je nach dem, was die aktuelle Partitionierung ist).
Beispiele
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|
# +---------+