Hold deg oppdatert med nyeste teknologi trender
Bli DataFlair På Telegram!!

Mål

Som vi vet, Bruker Apache Spark delte variabler for parallell behandling. Vel, Delte Variabler er av to typer, Kringkasting & Akkumulator. Så, i Denne PySpark artikkelen,» PySpark Kringkasting Og Akkumulator » vi vil lære hele Konseptet Med Kringkasting & Akkumulator bruker PySpark.
så, la oss starte PySpark Kringkasting og Akkumulator.

PySpark Kringkasting Og Akkumulator Med Eksempler

PySpark Kringkasting Og Akkumulator Med Eksempler

la oss utforske PySpark Bøker

PySpark Kringkasting Og Akkumulator

på å definere parallell behandling, når sjåføren sender en oppgave til byrder på klyngen en kopi av delt variabel går på hver node i klyngen, slik at vi kan bruke den til å utføre oppgaver.
Delte variabler som støttes Av Apache Spark i PySpark, er to typer−

  • Broadcast
  • Akkumulator

La oss lære PySpark Kringkasting og Akkumulator i detalj:

Broadcast Variables-PySpark

I Utgangspunktet, for å lagre kopien av data på tvers av alle noder, Brukes Kringkastingsvariabler. Men på alle maskinene er denne variabelen bufret, ikke sendt på maskiner. Vi kan også bruke den til å kringkaste litt informasjon til alle eksekutorer. Selv om det kan være av noe slag, enten foreløpig type eller et hash-kart. For Eksempel

Vet Du Om PySpark SparkContext

  • Enkeltverdi

Enkeltverdi refererer Til Fellesverdien for alle produktene.

  • Hashmap

Mens Hashmap betyr, slå opp eller kart side bli med.
videre kan kringkasting dimensjon ha betydelig ytelsesforbedring, når svært stort datasett (faktum) er forsøkt å bli med mindre datasett (dimensjon). I tillegg er disse variablene uforanderlige.
for PySpark har følgende kodeblokk detaljer om En Kringkastingsklasse:

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

for å bruke En Kringkastingsvariabel, her er et eksempel som viser En Kringkastingsvariabel, den har et attributt kalt verdi, dette attributtet lagrer dataene og brukes deretter til å returnere en kringkastingsverdi, for eksempel:

la oss revidere PySpark RDD

----------------------------------------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--------------------------------------

Kommando

$SPARK_HOME/bin/spark-submit broadcast.py

Utgang
Lagrede data ->
Skrive ut et bestemt element I RDD -> hadoop

Ta en titt På PySpark Karriere Omfang

akkumulatorer – pyspark

for å aggregere informasjonen gjennom assosiative og kommutative operasjoner, brukes akkumulatorvariabler. Som et eksempel, for en sum operasjon eller tellere (I MapReduce), kan vi bruke en akkumulator. I tillegg kan Vi bruke Akkumulatorer i Noen Gnist Apier.
for PySpark har følgende kodeblokk detaljer om En Akkumulatorklasse:

class pyspark.Accumulator(aid, value, accum_param)

her er et eksempel, det har også et attributt kalt verdi som samme som kringkastingsvariabelen, dette attributtet lagrer også dataene og brukes til å returnere en akkumulatorverdi. Men bare i et driverprogram, er det brukbart.
så brukes en akkumulatorvariabel av flere arbeidere og returnerer en akkumulert verdi i dette eksemplet.

la oss diskutere PySpark Serializers

----------------------------------------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------------------------------------

Kommando

$SPARK_HOME/bin/spark-submit accumulator.py

Utgang
den akkumulerte verdien er 15.
Så, dette handlet om PySpark Kringkasting og Akkumulator. Håper du liker vår forklaring.

Konklusjon

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.