Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Restituisce un nuovo dataframe che dispone esattamente numPartitions di partizioni.
Sintassi
coalesce(numPartitions: int)
Parametri
| Parametro | Tipo | Descrizione |
|---|---|---|
numPartitions |
int | specificare il numero di partizioni di destinazione. |
Restituzioni
DataFrame
Note
Analogamente all'unione definita in un set di dati RDD, questa operazione comporta una dipendenza stretta, ad esempio se si passa da 1000 partizioni a 100 partizioni, non ci sarà una sequenza casuale, anziché ognuna delle 100 nuove partizioni richiederà 10 delle partizioni correnti. Se viene richiesto un numero maggiore di partizioni, rimarrà al numero corrente di partizioni.
Tuttavia, se si esegue un'unione drastica, ad esempio numPartitions = 1, questo può comportare un calcolo su un numero inferiore di nodi desiderati, ad esempio un nodo nel caso di numPartitions = 1. Per evitare questo problema, è possibile chiamare repartition(). Verrà aggiunto un passaggio casuale, ma significa che le partizioni upstream correnti verranno eseguite in parallelo (in base al partizionamento corrente).
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|
# +---------+