2016-06-13 7 views
1

ich ein MapReduce-Programm haben (in Java), die Anzahl der Wörter in einem Dokument findet und speichert die Ausgabe als:Führen Sie ein paar Zeilen nach map & reduzieren

word1 10 
word2 20 
... 

Ich würde gerne wissen, wie ein hinzufügen ein paar Zeilen bis zum Ende der endgültigen Ausgabe, (etwas wie ein endlich Block von einem Versuch und fangen) das ist, würde ich gerne einige Wörter & ihre Ergebnisse an die endgültige Ausgabe anhängen.

Also meine Frage hier, gibt es eine Möglichkeit, ein Stück Code hinzuzufügen, der nach der Ausführung des Reduzierers läuft, damit ich etwas nach der ganzen Map machen kann & Reduzieren beendet?

+0

Ihr Reducer kann immer zusätzliche Zeilen nach Bedarf ausgeben, ich bin mir nicht sicher, es gibt eine allgemeine Art zu sagen "wenn fertig, einige andere Sachen mit der Datei gerade geschrieben" –

+0

@ cricket_007 können Sie mir ein Beispiel geben? Ich habe das nirgendwo gesehen, aber ich würde es gerne in meiner Bewerbung machen. –

+0

Beispiel von was? 'context.write' sollte bereits in Ihrem Reducer vorhanden sein. Ich sagte, ich bin mir nicht sicher ** wenn es einen Weg gibt –

Antwort

3

One Reducer: Wenn Sie einen Minderer haben, dann können Sie das Kontextobjekt in der Bereinigung verwenden die Rang/Punktzahl für jedes Wort zu schreiben. Dazu benötigen Sie die Daten, die bereits in die Ausgabedatei geschrieben wurden (Wortzahl). Ich würde vorschlagen, dass Sie eine Karte oder ein anderes Objekt in der Reduzierungsfunktion hinzufügen, um die Wortanzahl zu speichern. Verwenden Sie dieses Map-Objekt beim Aufräumen, um den Rang/die Punktzahl zu finden, und schreiben Sie das Ergebnis über das Kontextobjekt.

Multiple Reducer: Wenn Sie mehrere Minderer haben, dann müssen Sie nur in main/laufen Verfahren das gleiche tun. Aber in diesem Fall müssten Sie die Daten der Ausgabedatei lesen und dann die Berechnung durchführen, bevor Sie sie an die Datei anhängen. Ich würde vorschlagen, dass Sie Combiner verwenden und einen Reduzierer wie oben vorgeschlagen verwenden, um den Rang/die Punktzahl zu berechnen.

+0

Gut, soll das versuchen. –

Verwandte Themen