MapReduce Entwurfsmuster – Numerische Aggregation (Average)

MapReduce Entwurfsmuster - DurchschnittswerteIm zweiten Teil meiner kleinen Serie der MapReduce Entwurfsmustern für Microsoft HDInsight möchte ich ein weiteres Beispiel für eine Numerische Aggregation vorstellen.
Diesmal geht es um die Berechnung von Durchschnittswerten…

Im ersten Teil dieser Serie hatte ich ein Beispiel für einen Min/Max/Count MapReduce-Algorithmus vorgestellt.

Diesmal möchte ich die Sammlung um ein Beispiel für eine Durchschnittswertberechnung erweitern.

 

Beispiel "Average"

Bei diesem Beispiel soll die durchschnittliche Kommentarlänge pro Stunde errechnet werden.

Hierzu extrahiert die Mapper-Funktion die Werte der CreationDate- und Text-Attribute der XML-Quelle und gibt den Stunden-Wert, sowie die Textlängem als Key/Value-Paare zurück:

Die Combiner- und Reducer-Funktionen aggregieren anschließend die entsprechenden Werte.

Damit die Werte durch die Combiner-Funktion nicht verfälscht werden, muss die Summe mittels der Anzahl der Datensätze rekonstruiert werden.

Der Reducer liefert erneut die Ausgabewerte – zur späteren Weiterverarbeitung – im Tab-getrennten Format zurück.



Check Also

Time Machine Backups nach Microsoft Azure

Seit einigen Jahren verwende ich eine Apple Time Capsule, um meine Time Machine Backups an einem zentralen Ort speichern zu können. Bislang hatte das für mich auch vollkommen ausgereicht. Seitdem ich jedoch immer mehr unterwegs bin, habe ich nach einer Lösung gesucht, die ich auch von unterwegs nutzen kann. In diesem Blog Post zeige ich deshalb, wie man Time Machine Backups nach Microsoft Azure machen kann.