Sobes.tech
Middle

Ce este o alăturare broadcast în Spark și la ce folosește?

sobes.tech AI

Răspuns de la AI

Join-ul broadcast în Apache Spark este o optimizare a operației de join, în care una dintre tabele (de obicei cea mai mică) este transmisă (broadcast) către toate nodurile clusterului, unde se realizează join-ul cu tabela mare.

La ce folosește?

  • Într-un shuffle join obișnuit, ambele tabele sunt împărțite și trimise prin rețea, ceea ce poate fi costisitor pentru volume mari de date.
  • Dacă una dintre tabele este suficient de mică, poate fi 'broadcastată' pe toate nodurile de lucru pentru a evita shuffle-ul tabelei mari.
  • Acest lucru accelerează semnificativ execuția join-ului, reduce traficul de rețea și sarcina pe cluster.

Exemplu de utilizare:

val smallDF = spark.read.parquet("small_table.parquet")
val largeDF = spark.read.parquet("large_table.parquet")

val joined = largeDF.join(broadcast(smallDF), "key")

Aici, broadcast(smallDF) indică Spark să transmită smallDF către toate nodurile, ceea ce va îmbunătăți performanța la unirea cu largeDF.

Join-ul broadcast este deosebit de util în scenarii în care o tabelă este semnificativ mai mică decât cealaltă și poate încăpea în memoria fiecărui nod.