În calculul distribuit, operațiunea de Join între două tabele mari forțează transferul masiv de date prin rețea pentru ca rândurile cu aceeași cheie să ajungă pe același executor (operațiune numită Shuffle).
Dacă una dintre tabele este de dimensiuni mici (de regulă sub 10-100 MB, cum ar fi un nomenclator de țări sau coduri poștale), marcarea acesteia cu F.broadcast() trimite o copie completă pe fiecare nod de lucru. Astfel, join-ul se execută local și instantaneu (Broadcast Hash Join), eliminând complet latența de rețea.
Exemplu: Îmbinarea tranzacțiilor masive cu nomenclatorul de valute
from pyspark.sql import functions as F
# df_valute este un tabel mic de 50 de rânduri
df_final = df_tranzactii.join(
F.broadcast(df_valute),
df_tranzactii.cod_valuta == df_valute.cod,
how="left"
)
# Inspectarea planului fizic confirmă utilizarea BroadcastHashJoin:
df_final.explain()
Întrebări & Exemple de Cod:
Optimizarea Join-urilor prin Replicare cu F.broadcastAi o nelămurire despre utilizarea comenzii
Optimizarea Join-urilor prin Replicare cu F.broadcastsau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.