Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Retourne un nouveau DataFrame qui comporte exactement numPartitions des partitions.
Syntaxe
coalesce(numPartitions: int)
Paramètres
| Paramètre | Type | Description |
|---|---|---|
numPartitions |
int | spécifiez le nombre cible de partitions. |
Retours
DataFrame
Remarques
Comme pour la fusion définie sur un RDD, cette opération entraîne une dépendance étroite, par exemple si vous passez de 1 000 partitions à 100 partitions, il n’y aura pas de shuffle, au lieu de chacune des 100 nouvelles partitions revendication 10 des partitions actuelles. Si un plus grand nombre de partitions est demandé, il reste au nombre actuel de partitions.
Toutefois, si vous effectuez une fusion radicale, par exemple pour numPartitions = 1, cela peut entraîner la mise en place de votre calcul sur moins de nœuds que vous le souhaitez (par exemple, un nœud dans le cas de numPartitions = 1). Pour éviter cela, vous pouvez appeler repartition(). Cela ajoute une étape aléatoire, mais signifie que les partitions en amont actuelles sont exécutées en parallèle (par rapport au partitionnement actuel).
Exemples
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|
# +---------+