Transformations étroites et larges

Une transformation étroite (filter, select, map) travaille partition par partition, sans échange de données. Une transformation large (groupBy, join, distinct, repartition) exige un shuffle : les lignes sont redistribuées entre les executors via le réseau. Le shuffle est l'opération la plus coûteuse d'un job Spark.

Exemple

df.groupBy('pays').sum('montant')  # transformation large, provoque un shuffle

Notions voisines

Tout le glossaire