Apache Spark kombinacijaByKey Explained



Ta spletni dnevnik Spark Hadoop vam pove vse, kar morate vedeti o Apache Spark combByKey. Poiščite povprečni rezultat na študenta z uporabo metode combByKey.

Prispeval Prithviraj Bose

Spark je bliskovito hiter računalniški okvir grozdov, zasnovan za hitro računanje in povpraševanje po strokovnjakih je danes na trgu pomembna.Tu je zmogljiv API v programu Spark, ki je kombinirajByKey .





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

API Python: pyspark.RDD.combineByKey .



API ima tri funkcije (kot lambda izrazi v Python ali anonimne funkcije v Lestev ), in sicer

  1. Ustvari funkcijo kombiniranja: x
  2. Funkcija spajanja vrednosti: y
  3. Funkcija združevanja združevalcev: z

in format API je kombinirajByKey (x, y, z) .

Poglejmo primer (v Scali). Poiščite celoten vir Scale tukaj .



ustvarjanje matrike predmetov v javi

Naš cilj je najti povprečni rezultat na študenta.

Tu je razred ograde ScoreDetail shranjevanje imena učencev skupaj z oceno predmeta.

Scoredetail-spark-combinebykey

Nekateri testni podatki se ustvarijo in pretvorijo v vrednosti para ključev, kjer key = Ime študentov in value = ScoreDetail primer.

Nato ustvarimo Pair RDD, kot je prikazano v spodnjem fragmentu kode. Samo za eksperimentiranje sem ustvaril razdelilnik razpršitve velikosti 3, tako da bodo tri particije vsebovale 2, 2 in 4 pare ključnih vrednosti. To je poudarjeno v razdelku, v katerem raziskujemo vsako particijo.

Zdaj lahko raziščemo vsako particijo. Prva vrstica natisne dolžino vsake particije (število parov vrednosti ključa na particijo), druga vrstica pa natisne vsebino vsake particije.

In tu je zaključno gibanje, kjer izračunamo povprečno oceno na študenta, potem ko združimo rezultate po pregradah.

Zgornji tok kode je naslednji ...
Najprej moramo ustvariti funkcijo kombiniranja, ki je v bistvu nabor = (vrednost, 1) za vsak ključ, ki ga najdemo na vsaki particiji. Po tej fazi je izhod za vsak (ključ, vrednost) v particiji (ključ, (vrednost, 1)).

Nato se na naslednji ponovitvi kombinirane funkcije na particijo združijo z uporabo funkcije združevanja vrednosti za vsak ključ. Po tej fazi je izhodna vrednost vsakega (key, (value, 1)) (key, (total, count)) v vsaki particiji.

Na koncu funkcija združevanja združi vse vrednosti v particijah v izvršilnikih in podatke pošlje gonilniku. Po tej fazi je rezultat vsakega (ključ, (skupno, štetje)) na particijo
(ključ, (totalAcrossAllPartitions, countAcrossAllPartitions)).

Zemljevid pretvori
(key, tuple) = (key, (totalAcrossAllPartitions, countAcrossAllPartitions))
za izračun povprečja na ključ kot (ključ, tuple._1 / tuple._2).

Zadnja vrstica natisne povprečne ocene za vse učence na koncu voznika.

Imate vprašanje za nas? Omenite jih v oddelku za komentarje in javili se vam bomo.

Sorodne objave:

Demistificiranje particioniranja v iskri