Caching distribuito con variabili di trasmissione: Apache Spark

Questo post del blog discute la memorizzazione nella cache distribuita con variabili di trasmissione e ti consente di iniziare a distribuire in modo efficiente valori di grandi dimensioni nella programmazione Spark.

come creare un pacchetto java

Contributo di Prithviraj Bose





Le variabili di trasmissione sono utili quando è necessario memorizzare nella cache set di dati di grandi dimensioni negli esecutori. Questo blog spiega come iniziare.

Cosa sono le variabili di trasmissione?



Le variabili di trasmissione in Apache Spark è un meccanismo per la condivisione di variabili tra gli esecutori che devono essere di sola lettura. Senza le variabili di trasmissione, queste variabili verrebbero inviate a ciascun esecutore per ogni trasformazione e azione e ciò può causare un sovraccarico di rete. Tuttavia, con le variabili di trasmissione, vengono fornite una volta a tutti gli esecutori e vengono memorizzate nella cache per riferimento futuro.

Caso d'uso delle variabili di trasmissione

Immagina che durante una trasformazione dobbiamo cercare una grande tabella di codici postali / codici pin. In questo caso, non è possibile inviare ogni volta la grande tabella di ricerca agli esecutori, né interrogare il database ogni volta. La soluzione dovrebbe essere quella di convertire questa tabella di ricerca in una variabile di trasmissione e Spark la memorizzerà nella cache in ogni esecutore per riferimento futuro.

Facciamo un semplice esempio per comprendere i concetti di cui sopra. Abbiamo un file CSV con i nomi dei paesi e le loro capitali. Il file CSV può essere trovato Qui .



CSV-file-distributed-caching

Supponendo che stiamo elaborando i dati demografici dei paesi e abbiamo bisogno di ottenere la capitale di quel paese. In questo caso possiamo convertire i dati nel file CSV in una variabile di trasmissione.

Per prima cosa carichiamo il file CSV in una mappa, se il file viene trovato, il metodo ritorna Alcuni paesi) altrimenti ritorna Nessuna .

Dopo aver caricato con successo il file CSV, convertiamo la mappa in una variabile di trasmissione e la utilizziamo nel nostro programma.

Nello snippet di codice sopra, carichiamo il file CSV in una mappa paesi quindi convertiamo quella mappa in una variabile di trasmissione paesiCache . Successivamente, creiamo un RDD dalle chiavi di paesi . Nel searchCountryDetails metodo cerchiamo tutti i paesi che iniziano con una lettera definita dall'utente e il metodo restituisce un RDD dei paesi insieme alle loro capitali. La variabile di trasmissione countrieCache viene utilizzato per cercare le maiuscole.
In questo modo non è necessario inviare tutti i dati CSV ogni volta che è necessario eseguire la ricerca.

Il codice per il searchCountryDetails è mostrato di seguito,

È possibile trovare l'intero codice sorgente Qui .

Hai domande per noi? Menzionali nella sezione commenti e ti risponderemo.

Post correlati:

Spiegazione degli accumulatori Spark

Spiegazione della combinazione di Apache Spark