Rimani aggiornato con le ultime tendenze tecnologiche
Unisciti a DataFlair su Telegram!!

Objective

Come sappiamo, Apache Spark utilizza variabili condivise, per l’elaborazione parallela. Bene, le variabili condivise sono di due tipi, Broadcast & Accumulatore. Quindi ,in questo articolo di PySpark,” PySpark Broadcast and Accumulator ” impareremo l’intero concetto di Broadcast & Accumulatore usando PySpark.
Quindi, iniziamo la trasmissione e l’accumulatore di PySpark.

PySpark Trasmissione e l'Accumulatore Con Esempi

PySpark Trasmissione e l’Accumulatore Con Esempi

esploriamo PySpark Libri

PySpark Broadcast e Accumulatore

Sulla definizione di elaborazione parallela, quando il driver invia un compito per l’esecutore del cluster, una copia della variabile condivisa va su ciascun nodo del cluster, in modo che possiamo utilizzare per l’esecuzione dell’attività.
variabili Condivise supportati da Apache Scintilla in PySpark sono due tipi di−

  • Broadcast
  • Accumulatore

impariamo PySpark Broadcast e Accumulatore in dettaglio:

Broadcast Variabili – PySpark

Fondamentalmente, per salvare la copia di dati tra tutti i nodi Broadcast vengono utilizzate le variabili. Tuttavia, su tutte le macchine questa variabile viene memorizzata nella cache, non inviata sulle macchine. Inoltre, possiamo usarlo per trasmettere alcune informazioni a tutti gli esecutori. Anche se, può essere di qualsiasi tipo, sia di tipo preliminare o una mappa hash. Ad esempio,

Conosci PySpark SparkContext

  • Valore singolo

Il valore singolo si riferisce al valore comune per tutti i prodotti.

  • Hashmap

Mentre, Hashmap significa, cercare o unire il lato della mappa.
Inoltre, la dimensione di trasmissione può avere un notevole miglioramento delle prestazioni, quando si tenta di unire un set di dati molto grande (fact) con un set di dati più piccolo (dimension). Inoltre, queste variabili sono immutabili.
Per PySpark, il seguente blocco di codice ha i dettagli di una classe Broadcast:

class pyspark.Broadcast ( sc = None, value = None, pickle_registry = None, path = None)

Per utilizzare una variabile Broadcast, ecco un esempio, che mostra una variabile Broadcast, ha un attributo chiamato value, questo attributo memorizza i dati e quindi viene utilizzato per restituire un valore broadcasted, come ad esempio:

vediamo PySpark RDA

----------------------------------------broadcast.py--------------------------------------from pyspark import SparkContextsc = SparkContext("local", "Broadcast app")words_new = sc.broadcast()data = words_new.valueprint "Stored data -> %s" % (data)elem = words_new.valueprint "Printing a particular element in RDD -> %s" % (elem)----------------------------------------broadcast.py--------------------------------------

Comando

$SPARK_HOME/bin/spark-submit broadcast.py

Output
dati Memorizzati ->
Stampa di un particolare elemento RDA -> hadoop

guarda PySpark Carriera in Ambito

Accumulatori – Pyspark

Per l’aggregazione di informazioni attraverso associativa e commutativa operazioni, Accumulatore variabili vengono utilizzate. Ad esempio, per un’operazione di somma o contatori (in MapReduce), possiamo usare un accumulatore. Inoltre, possiamo utilizzare gli accumulatori in qualsiasi API Spark.
Per PySpark, il seguente blocco di codice ha i dettagli di una classe di accumulatori:

class pyspark.Accumulator(aid, value, accum_param)

Ecco un esempio, ha anche un attributo chiamato value come lo stesso della variabile broadcast, questo attributo memorizza anche i dati e quindi viene utilizzato per restituire un valore accumulatore. Tuttavia, solo in un programma driver, è utilizzabile.
Quindi, una variabile accumulatore viene utilizzata da più lavoratori e restituisce un valore accumulato, in questo esempio.

Parliamo di serializzatori PySpark

----------------------------------------accumulator.py------------------------------------from pyspark import SparkContextsc = SparkContext("local", "Accumulator app")num = sc.accumulator(1)def f(x): global num num+=xrdd = sc.parallelize()rdd.foreach(f)final = num.valueprint "Accumulated value is -> %i" % (final)----------------------------------------accumulator.py------------------------------------

Comando

$SPARK_HOME/bin/spark-submit accumulator.py

Output
Il valore accumulato è 15.
Quindi, si trattava di PySpark Broadcast e Accumulator. Spero che ti piaccia la nostra spiegazione.

Conclusione

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.