Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Vrátí nový datový rámec, který má přesně numPartitions oddíly.
Syntaxe
coalesce(numPartitions: int)
Parametry
| Parameter | Typ | Description |
|---|---|---|
numPartitions |
int (integer) | zadejte cílový počet oddílů. |
Návraty
DataFrame
Poznámky
Podobně jako u sady RDD má tato operace za následek úzkou závislost, například pokud přejdete z 1000 oddílů na 100 oddílů, nedojde k náhodnému náhodnému prohazování, místo každého z 100 nových oddílů se bude deklarovat 10 aktuálních oddílů. Pokud se požaduje větší počet oddílů, zůstane na aktuálním počtu oddílů.
Pokud ale provádíte drastickou sloučení, například numPartitions = 1, může to vést k tomu, že se výpočet provádí na méně uzlech, než chcete (například jeden uzel v případě numPartitions = 1). Abyste tomu předešli, můžete volat repartition(). Tím se přidá krok náhodného prohazování, ale znamená to, že se aktuální nadřazené oddíly spustí paralelně (podle toho, co je aktuální dělení).
Příklady
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|
# +---------+