Tuning și Performanță în Spark SQL: Partitioning, Bucketing, Broadcast Joins și Evitarea Shuffling-ului Costisitor în Apache Spark & PySpark

Ghid de optimizare a performanței în Spark: de ce operațiunea de Shuffle este cel mai mare inamic al vitezei, utilizarea broadcast(small_df) pentru uniri rapide în memorie, Adaptive Query Execution (AQE) și particionare.

Sintaxă
from pyspark.sql.functions import broadcast; large_df.join(broadcast(small_df), 'key')

Când două tabele mari sunt unite printr-un JOIN, Spark este forțat să re-distribuie datele între toate nodurile clusterului pe rețea (operațiunea de Shuffle). Prin utilizarea Broadcast Joins, tabelul mic este copiat integral în memoria fiecărui executor, eliminând complet transferul de date pe rețea!