Distribuerad caching med sändningsvariabler: Apache Spark



Det här blogginlägget diskuterar distribuerad caching med sändningsvariabler och du kommer igång med att effektivt distribuera stora värden i Spark-programmering.

Bidrag från Prithviraj Bose





Sändningsvariabler är användbara när stora datamängder måste cachas i exekverare. Den här bloggen förklarar hur du kommer igång.

Vad är sändningsvariabler?



Broadcast-variabler i Apache Spark är en mekanism för att dela variabler över exekutörer som är avsedda att vara skrivskyddade. Utan sändningsvariabler skulle dessa variabler skickas till varje exekverare för varje transformation och åtgärd, och detta kan orsaka nätverkskostnader. Men med sändningsvariabler skickas de en gång till alla utförare och cachas för framtida referens.

Sändningsvariabler Användningsfall

Tänk dig att när vi gör en omvandling måste vi leta upp en stor tabell med postnummer / pinkoder. Här är det varken möjligt att skicka den stora uppslagstabellen varje gång till exekutörerna, inte heller kan vi fråga databasen varje gång. Lösningen bör vara att konvertera denna uppslagstabell till en sändningsvariabel och Spark cachar den i varje exekverare för framtida referens.

vad är skillnaden mellan jquery och javascript

Låt oss ta ett enkelt exempel för att förstå ovanstående begrepp. Vi har en CSV-fil med namn på länder och deras huvudstäder. CSV-filen finns här .



CSV-file-distributed-caching

Förutsatt att vi bearbetar demografisk information om länder och vi måste få huvudstaden i det landet. I det här fallet kan vi konvertera data i CSV-filen till en sändningsvariabel.

Först läser vi in ​​CSV-filen på en karta. Om filen hittas återgår metoden Vissa länder) annars återkommer den Ingen .

Efter framgångsrik laddning av CSV-filen konverterar vi kartan till en sändningsvariabel och använder den i vårt program.

hur man använder semaforer i java

I kodavsnittet ovan laddar vi CSV-filen till en karta länder sedan konverterar vi kartan till en sändningsvariabel countryCache . Därefter skapar vi en RDD från tangenterna till länder . I searchCountryDetails metod vi söker efter alla länder som börjar med en användardefinierad bokstav och metoden returnerar en RDD av länder tillsammans med deras huvudstäder. Sändningsvariabeln countrieCache används för att leta upp huvudstäderna.
På så sätt behöver vi inte skicka hela CSV-data varje gång vi behöver söka.

Koden för searchCountryDetails visas nedan,

Hela källkoden finns här .

Har du en fråga till oss? Nämn dem i kommentarsektionen så återkommer vi till dig.

Relaterade inlägg:

Gnistackumulatorer förklarade

Apache Spark combineByKey Explained