Apache Spark combineByKey explicat



Acest blog Spark Hadoop vă spune tot ce trebuie să știți despre Apache Spark combineByKey. Găsiți scorul mediu pe elev folosind metoda combineByKey.

Contribuție de Prithviraj Bose

Spark este un cadru de calcul de tip cluster rapid, proiectat pentru calcul rapid și cererea pentru profesioniștii cu este substanțial pe piață astăzi.Iată un API puternic în Spark, care este combineByKey .





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

API Python: pyspark.RDD.combineByKey .



API are trei funcții (cum ar fi expresii lambda în Piton sau funcții anonime în Scară ), și anume,

  1. Creați funcția de combinare: x
  2. Funcția de îmbinare a valorii: y
  3. Funcția de combinare Merge: z

iar formatul API este combineByKey (x, y, z) .

Să vedem un exemplu (în Scala). Sursa completă Scala poate fi găsită Aici .



Obiectivul nostru este să găsim scorul mediu pe elev.

Iată o clasă de substituent ScoreDetail stocarea numelui elevilor împreună cu scorul unui subiect.

programare socket tcp în java

Scoredetail-spark-combinebykey

Unele date de testare sunt generate și convertite în valori ale perechii de chei unde cheie = Numele elevilor și value = ScoreDetail instanță.

Apoi creăm un Pair RDD așa cum se arată în fragmentul de cod de mai jos. Doar pentru experimentare, am creat un partiționator hash de dimensiunea 3, astfel încât cele trei partiții vor conține 2, 2 și respectiv 4 perechi de valori cheie. Acest lucru este evidențiat în secțiunea în care explorăm fiecare partiție.

Acum putem explora fiecare partiție. Prima linie tipărește lungimea fiecărei partiții (numărul de perechi de valori cheie per partiție) și a doua linie tipărește conținutul fiecărei partiții.

încheiați un program în java

Și iată mișcarea finală în care calculăm scorul mediu pe elev după combinarea scorurilor pe partiții.

Fluxul de cod de mai sus este după cum urmează ...
Mai întâi trebuie să creăm o funcție de combinare care este în esență un tuplu = (valoare, 1) pentru fiecare cheie întâlnită în fiecare partiție. După această fază, ieșirea pentru fiecare (cheie, valoare) dintr-o partiție este (cheie, (valoare, 1)).

Apoi, la următoarea iterație, funcțiile de combinare pe partiție sunt îmbinate folosind funcția de valoare de îmbinare pentru fiecare tastă. După această fază, ieșirea fiecărei (cheie, (valoare, 1)) este (cheie, (total, număr)) în fiecare partiție.

În cele din urmă, funcția de combinare merge fuzionează toate valorile din partițiile din executanți și trimite datele înapoi la driver. După această fază, ieșirea fiecărei (cheie, (total, număr)) pe partiție este
(cheie, (totalAcrossAllPartitions, countAcrossAllPartitions)).

Harta convertește
(cheie, tuplu) = (cheie, (totalAcrossAllPartitions, countAcrossAllPartitions))
pentru a calcula media pe cheie ca (cheie, tuplu._1 / tuplu._2).

Ultima linie tipărește scorurile medii pentru toți elevii la sfârșitul șoferului.

Ai o întrebare pentru noi? Menționați-le în secțiunea de comentarii și vă vom răspunde.

Postări asemănatoare:

ce este alert în javascript

Despărțirea partiționării în Spark