Objašnjenje Apache SparkByKey

Ovaj Spark Hadoop blog govori vam sve što trebate znati o Apache Spark combByKey. Nađite prosječnu ocjenu po studentu metodom combByKey.

Doprinos Prithviraj Bose

Spark je munjevit klaster računalni okvir dizajniran za brzo računanje i potražnju za profesionalcima s danas je značajno na tržištu.Evo moćnog API-ja u Sparku koji je kombiniratiByKey .





API skala: org.apache.spark.PairRDDFunctions.combineByKey .

Python API: pyspark.RDD.combineByKey .



API ima tri funkcije (kao lambda izrazi u Piton ili anonimne funkcije u Ljestve ), naime,

  1. Stvori funkciju kombinirača: x
  2. Funkcija spajanja vrijednosti: y
  3. Funkcija kombinirajućih kombinacija: z

a API format je combByKey (x, y, z) .

Pogledajmo primjer (u Scali). Može se pronaći puni izvor Scale ovdje .



Cilj nam je pronaći prosječni rezultat po studentu.

Evo klase rezerviranog mjesta ScoreDetail pohranjivanje imena učenika zajedno s rezultatom predmeta.

dobiti veličinu niza javascript

Scoredetail-spark-combinebykey

Neki se testni podaci generiraju i pretvaraju u vrijednosti para ključeva gdje ključ = Ime učenika i vrijednost = ScoreDetail primjer.

Zatim kreiramo Pair RDD kao što je prikazano u donjem fragmentu koda. Samo za eksperimentiranje, stvorio sam hash particiju veličine 3, tako da će tri particije sadržavati 2, 2, odnosno 4 para vrijednosti vrijednosti. To je istaknuto u odjeljku u kojem istražujemo svaku particiju.

Sada možemo istražiti svaku particiju. Prvi redak ispisuje duljinu svake particije (broj parova vrijednosti ključa po particiji), a drugi redak ispisuje sadržaj svake particije.

java kod za završetak programa

I evo završnog stavka u kojem izračunavamo prosječni rezultat po učeniku nakon kombiniranja rezultata na particijama.

Gornji tijek koda je sljedeći ...
Prvo moramo stvoriti funkciju kombinirača koja je u osnovi korpa = (vrijednost, 1) za svaki ključ koji se nađe u svakoj particiji. Nakon ove faze izlaz za svaki (ključ, vrijednost) u particiji je (ključ, (vrijednost, 1)).

Zatim se na sljedećoj iteraciji kombiniraju funkcije kombinacije po particiji pomoću funkcije spajanja vrijednosti za svaki ključ. Nakon ove faze izlaz svakog (ključ, (vrijednost, 1)) je (ključ, (ukupno, brojanje)) u svakoj particiji.

Konačno, funkcija kombiniranja spajanja spaja sve vrijednosti na particijama u izvršiteljima i šalje podatke natrag pogonitelju. Nakon ove faze izlazi svaki (ključ, (ukupno, brojanje)) po particiji
(ključ, (totalAcrossAllPartitions, countAcrossAllPartitions)).

Karta pretvara
(ključ, tuple) = (ključ, (totalAcrossAllPartitions, countAcrossAllPartitions))
za izračunavanje prosjeka po ključu kao (ključ, korijen._1 / korpica._2).

Posljednji redak ispisuje prosječne ocjene za sve učenike na kraju vozača.

Imate pitanje za nas? Spomenite ih u odjeljku za komentare i javit ćemo vam se.

Vezane objave:

ssis tutorial za početnike 2012 s primjerima

Demistificiranje particioniranja u Iskri