Distribuované medzipamäť s premennými vysielania: Apache Spark



Tento príspevok na blogu pojednáva o distribuovanom ukladaní do pamäte cache s premennými vysielania a uvádza vás do úvahy o efektívnej distribúcii veľkých hodnôt v programovaní Spark.

Prispel Prithviraj Bose





Broadcast variables sú užitočné, keď je potrebné ukladať do exekútorov veľké súbory údajov. Tento blog vysvetľuje, ako začať.

Čo sú vysielané premenné?



Broadcast variables in Apache Spark je mechanizmus na zdieľanie premenných medzi exekútormi, ktoré sú určené iba na čítanie. Bez vysielacích premenných by sa tieto premenné dodávali každému vykonávateľovi pri každej transformácii a akcii, čo by mohlo spôsobiť réžiu siete. Avšak s vysielanými premennými sa dodávajú raz všetkým exekútorom a ukladajú sa do medzipamäte pre ďalšie použitie.

Broadcast Variables Prípad použitia

Predstavte si, že pri transformácii musíme vyhľadať veľkú tabuľku PSČ / kódov PIN. Tu nie je možné vždy poslať veľkú vyhľadávaciu tabuľku exekútorom, ani nemôžeme zakaždým vyhľadávať v databáze. Riešením by malo byť prevedenie tejto vyhľadávacej tabuľky na vysielané premenné a Spark ju uloží do každého exekútora pre ďalšie použitie.

periodická tabuľka nástrojov devops

Urobme si jednoduchý príklad na pochopenie vyššie uvedených pojmov. Máme súbor CSV s názvami krajín a ich hlavných mestách. Súbor CSV možno nájsť tu .



CSV-file-distributed-caching

Za predpokladu, že spracovávame demografické údaje krajín a potrebujeme získať kapitál tejto krajiny. V takom prípade môžeme previesť údaje v súbore CSV na vysielanú premennú.

Najskôr načítame súbor CSV do mapy, ak sa súbor nájde, metóda sa vráti Niektoré (krajiny) inak sa vráti Žiadne .

Po úspešnom načítaní súboru CSV prevedieme mapu na vysielanú premennú a použijeme ju v našom programe.

V útržku kódu vyššie načítame súbor CSV do mapy krajinách potom túto mapu prevedieme na vysielaciu premennú countriesCache . Následne vytvoríme RDD z kľúčov krajinách . V searchCountryDetails metódou vyhľadáme všetky krajiny začínajúce používateľom definovaným písmenom a metóda vráti RDD krajín spolu s ich hlavnými mestami. Premenná vysielania countrieCache sa používa na vyhľadanie hlavných miest.
Takto nemusíme posielať všetky údaje CSV zakaždým, keď potrebujeme hľadať.

Kód pre searchCountryDetails je zobrazené nižšie,

Celý zdrojový kód nájdete tu .

Máte na nás otázku? Uveďte ich v sekcii komentárov a my sa vám ozveme.

Súvisiace príspevky:

Vysvetlenie akumulátorov iskier

Apache Spark combineByKey vysvetlené