Caching distribuit cu variabile difuzate: Apache Spark



Această postare pe blog discută stocarea în cache distribuită cu variabile de difuzare și vă ajută să distribuiți în mod eficient valori mari în programarea Spark.

Contribuție de Prithviraj Bose





Variabilele de difuzare sunt utile atunci când seturile de date mari trebuie stocate în cache în executanți. Acest blog explică cum să începeți.

Ce sunt variabilele difuzate?



Variabilele difuzate în Apache Spark sunt un mecanism pentru partajarea variabilelor între executanți care sunt menite să fie doar în citire. Fără variabile de difuzare, aceste variabile ar fi expediate fiecărui executant pentru fiecare transformare și acțiune, iar acest lucru poate provoca cheltuieli generale ale rețelei. Cu toate acestea, cu variabilele de difuzare, acestea sunt expediate o dată către toți executanții și sunt stocate în cache pentru referințe viitoare.

Variabile difuzate Caz de utilizare

Imaginați-vă că, în timp ce facem o transformare, trebuie să căutăm un tabel mare de coduri poștale / coduri PIN. Aici, nu este nici fezabil să trimitem de fiecare dată tabelul mare de căutare executanților și nici nu putem interoga baza de date de fiecare dată. Soluția ar trebui să fie convertirea acestui tabel de căutare într-o variabilă de difuzare și Spark îl va memora în cache în fiecare executant pentru referință viitoare.

Să luăm un exemplu simplu pentru a înțelege conceptele de mai sus. Avem un fișier CSV cu numele țărilor și capitalele acestora. Fișierul CSV poate fi găsit Aici .



CSV-file-distributed-caching

Presupunând că procesăm date demografice ale țărilor și trebuie să obținem capitalul țării respective. În acest caz, putem converti datele din fișierul CSV într-o variabilă de difuzare.

Mai întâi încărcăm fișierul CSV într-o hartă, dacă fișierul este găsit, atunci metoda revine Unele tari) altfel se întoarce Nici unul .

cum se convertește dublu în java int

După încărcarea cu succes a fișierului CSV, convertim harta într-o variabilă de difuzare și o folosim în programul nostru.

În fragmentul de cod de mai sus încărcăm fișierul CSV pe o hartă țări apoi convertim acea hartă într-o variabilă de difuzare țăriCache . Ulterior, creăm un RDD din tastele țări . În searchCountryDetails metoda căutăm toate țările începând cu o literă definită de utilizator și metoda returnează o RDD a țărilor împreună cu capitalele lor. Variabila difuzată countrieCache este folosit pentru căutarea capitalelor.
În acest fel, nu trebuie să trimitem toate datele CSV de fiecare dată când trebuie să căutăm.

Codul pentru searchCountryDetails este prezentat mai jos,

Întregul cod sursă poate fi găsit Aici .

Ai o întrebare pentru noi? Menționați-le în secțiunea de comentarii și vă vom răspunde.

ordin crescător c ++

Postări asemănatoare:

Explicați acumulatorii de scânteie

Apache Spark combineByKey explicat