Apache Spark combineByKey explicat



Aquest bloc de Spark Hadoop us explica tot el que necessiteu saber sobre Apache Spark combineByKey. Cerqueu la puntuació mitjana per estudiant mitjançant el mètode combineByKey.

Aportat per Prithviraj Bose

Spark és un marc d’informàtica en clúster ràpidament dissenyat per a una computació ràpida i la demanda de professionals amb és important al mercat actualment.Aquí hi ha una API potent a Spark combineByKey .





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

API Python: pyspark.RDD.combineByKey .



L 'API té tres funcions (com expressions lambda dins Python o bé funcions anònimes dins Escala ), és a dir,

  1. Crea una funció de combinador: x
  2. Funció de valor de combinació: y
  3. Funció de combinació de combinacions: z

i el format API és combineByKey (x, i, z) .

Vegem un exemple (a Scala). Es pot trobar la font completa de Scala aquí .



El nostre objectiu és trobar la puntuació mitjana per estudiant.

Aquí teniu una classe de marcador de posició PuntuacióDetall emmagatzemar el nom dels estudiants juntament amb la puntuació d'una assignatura.

com sortir del programa java

Scoredetail-spark-combinebykey

Algunes dades de prova es generen i es converteixen en valors de parell de claus on clau = Nom dels estudiants i value = ScoreDetail instància.

A continuació, creem un parell RDD com es mostra al fragment de codi següent. Només per experimentar, he creat un particionador hash de mida 3, de manera que les tres particions conteniran 2, 2 i 4 parells de valors clau respectivament. Això es ressalta a la secció on explorem cada partició.

Ara podem explorar cada partició. La primera línia imprimeix la longitud de cada partició (nombre de parells de valors clau per partició) i la segona línia imprimeix el contingut de cada partició.

quina és la classe d’escàner a Java

I aquí teniu el moviment final en què calculem la puntuació mitjana per alumne després de combinar les puntuacions entre les particions.

El flux de codi anterior és el següent ...
Primer hem de crear una funció de combinador que és essencialment una tupla = (valor, 1) per a cada tecla que es troba a cada partició. Després d'aquesta fase, la sortida de cada (clau, valor) d'una partició és (clau, (valor, 1)).

A continuació, a la següent iteració es combinen les funcions del combinador per partició mitjançant la funció de valor de combinació de cada tecla. Després d'aquesta fase, la sortida de cada (clau, (valor, 1)) és (clau, (total, recompte)) a cada partició.

Finalment, la funció de combinador de combinació combina tots els valors de les particions dels executors i envia les dades al controlador. Després d'aquesta fase, la sortida de cada (clau, (total, recompte)) per partició és
(clau, (totalAcrossAllPartitions, countAcrossAllPartitions)).

El mapa converteix el fitxer
(clau, tupla) = (clau, (totalAcrossAllPartitions, countAcrossAllPartitions))
per calcular la mitjana per tecla com (clau, tupla._1 / tupla._2).

L’última línia imprimeix les puntuacions mitjanes de tots els estudiants al final del conductor.

Tens alguna pregunta? Esmenteu-los a la secció de comentaris i us respondrem.

Articles Relacionats:

transformacions actives i passives en informàtica

Desmitificació de particions a Spark