„Apache Spark combByKey“ paaiškinta



Šis „Spark Hadoop“ tinklaraštis nurodo viską, ką reikia žinoti apie „Apache Spark combByKey“. Raskite vidutinį vieno studento balą naudodami „combByKey“ metodą.

Prisidėjo Prithviraj Bose

„Spark“ yra žaibiška klasterių skaičiavimo sistema, sukurta greitai skaičiuoti ir specialistų poreikiui šiandien yra reikšminga rinkoje.Čia yra galinga „Spark“ API „combByKey“ .





API skalė: org.apache.spark.PairRDDFunctions.combineByKey .

„Python“ API: pyspark.RDD.combineByKey .



„servicenow“ pamoka pradedantiesiems pdf

API turi tris funkcijas (kaip lambda posakiai į „Python“ arba anoniminės funkcijos į Kopėčios ), būtent,

  1. Sukurti kombinatoriaus funkciją: x
  2. Sujungti vertės funkciją: y
  3. Sujungti kombinatorių funkcija: z

ir API formatas yra „combByKey“ (x, y, z) .

Pažiūrėkime pavyzdį („Scaloje“). Galite rasti visą „Scala“ šaltinį čia .



Mūsų tikslas yra rasti vidutinį vieno studento balą.

Čia yra vietos rezervavimo klasė „ScoreDetail“ saugant studentų vardus ir dalyko balus.

Scoredetail-spark-combinebykey

Kai kurie bandymo duomenys generuojami ir konvertuojami į raktų porų reikšmes, kur raktas = Studentų vardas ir vertė = „ScoreDetail“ instancija.

Tada mes sukuriame „Pair RDD“, kaip parodyta žemiau esančiame kodo fragmente. Tiesiog eksperimentui sukūriau 3 dydžio maišos skaidytuvą, todėl trijuose skirsniuose bus atitinkamai 2, 2 ir 4 pagrindinių reikšmių poros. Tai pabrėžiama skyriuje, kuriame tyrinėjame kiekvieną skaidinį.

Dabar galime ištirti kiekvieną skaidinį. Pirmoji eilutė atspausdina kiekvieno skaidinio ilgį (raktų reikšmių porų skaičius skaidinyje), o antroji eilutė - kiekvieno skaidinio turinį.

java kaip naudotis tostring

Štai čia finalo judėjimas, kai suskaičiavę balus visose pertvarose, apskaičiuojame vidutinį vieno studento balą.

Pirmiau pateiktas kodų srautas yra toks ...
Pirmiausia turime sukurti kombinatoriaus funkciją, kuri iš esmės yra kiekvienam raktui, atsirandančiam kiekviename skaidinyje, = duplė = (reikšmė, 1). Po šio etapo kiekvieno (rakto, vertės) skaidinio išvestis yra (raktas, (reikšmė, 1)).

Tada kitame kartojime sujungimo funkcijos skaidinyje sujungiamos naudojant kiekvieno klavišo suliejimo vertės funkciją. Po šio etapo kiekvieno (raktas, (reikšmė, 1)) išvestis yra (raktas, (iš viso, skaičius)) kiekviename skaidinyje.

Galiausiai sujungimo derinimo funkcija sujungia visas vykdytojų skaidinių reikšmes ir siunčia duomenis atgal tvarkyklei. Po šio etapo kiekvieno partijos (rakto, (viso, skaičiaus)) išvestis yra
(raktas, (totalAcrossAllPartitions, countAcrossAllPartitions)).

Žemėlapis konvertuoja
(raktas, paketas) = ​​(raktas, (totalAcrossAllPartitions, countAcrossAllPartitions))
apskaičiuoti raktų vidurkį kaip (raktas, paketas._1 / paketas._2).

Paskutinėje eilutėje spausdinami vidutiniai visų mokinių balai vairuotojo gale.

Turite mums klausimą? Paminėkite juos komentarų skiltyje ir mes susisieksime su jumis.

Susijusios žinutės:

Demistifikuojantis skaidymas „Spark“