___ answer26097064 ___

Sie benutzen das Zeug richtig.

Link Während Sie Ihren aktuellen Code ausführen, ist die Ausgabe wie

%Vor%

Warum ist das so, weil

?

Sie geben zwei Schlüssel / Wert-Paare aus.

Erstes Schlüssel / Wert-Paar ist Wert und das zweite Schlüssel-Wert-Paar ist Schlüsseltaste

was ist die richtige? Wert ist 10 und der Schlüssel ist 1

%Vor%     
Verwenden Sie KeyValueTextInputFormat ___ answer23907054 ___

Das Trennzeichen kann unter dem Attributnamen %code% angegeben werden. Das Standardtrennzeichen ist das Registerzeichen %code% . Ändern Sie also in Ihrem Fall die Zeile %code%
zu

%Vor%

und das sollte den Trick machen

    
___ tag123hadoop ___ Hadoop ist ein Apache-Open-Source-Projekt, das Software für zuverlässiges und skalierbares verteiltes Computing bereitstellt. Das Projekt selbst enthält eine Vielzahl anderer ergänzender Ergänzungen. ___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ answer21348898 ___

Ich habe gerade versucht, dass %code% Schlüssel und Werte genommen wird, wenn sie eine Registerkarte zwischen ihnen haben, sonst wird es die komplette Zeile als Schlüssel nehmen, und es wird nichts im Wert sein.

Also müssen wir %code% anstelle von %code%

verwenden     
___ tag123mapreduce ___ MapReduce ist ein Algorithmus zur Verarbeitung großer Datasets zu bestimmten Arten von verteilbaren Problemen unter Verwendung einer großen Anzahl von Knoten ___ answer12564836 ___

Die Eingabedatei wird in Schlüsselwertpaare konvertiert und die Kartenfunktion wird für alle diese Paare aufgerufen. Im Falle Ihres Beispiels ist die Eingabe für die Zuordnung ein Schlüssel (der wahrscheinlich 1 ist, da es die Zeilennummer in der Datei ist) und am wichtigsten ist Ihr Wert 1,10 10.

Nun können Sie alles aus Ihrem Mapper ausgeben, das erst nach dem Tauschen und Sortieren aller Ausgaben aus dem Mapper zur Reducer-Klasse der Reducer-Klasse geht.

Wenn Sie also context.write (value) von Ihrem Mapper und von Ihrem Reducer ausgeben, erhalten Sie eindeutige Zeilen aus all Ihren Dateien.

Ich glaube nicht, dass ich erklärt habe, was Sie wollen, aber das ist die grundlegende Sache, die in Hadoop Map-Reduce passiert.

    
___ tag123wordcount ___ Die Wortzahl ist die Anzahl der Wörter in einem Dokument oder einer Textpassage. ___ qstntxt ___

Ich benutze hadoop 1.0.1, um ein Projekt zu machen und ich möchte meine Eingabe .txt-Datei zum "Schlüssel" machen und "Wert" den ich brauche, wie:

Wenn ich eine %code% Datei habe und der Dateiinhalt ist

  

1, 10 10

Ich denke, ich kann "KeyValueTextInputFormat" verwenden und mache "," das Trennungssymbol. Nach der Eingabe ist der Schlüssel "1" und der value ist "10 10" .

Aber das Ergebnis, das ich bekommen habe, ist die ganze Information ist der Schlüssel, der Wert ist leer. Ich weiß nicht, wo das Problem ist.

Bitte geben Sie mir Hilfe, danke!

Dies ist der Beispielcode:

%Vor%     
___

8

Ich benutze hadoop 1.0.1, um ein Projekt zu machen und ich möchte meine Eingabe .txt-Datei zum "Schlüssel" machen und "Wert" den ich brauche, wie:

Wenn ich eine test.txt Datei habe und der Dateiinhalt ist

  

1, 10 10

Ich denke, ich kann "KeyValueTextInputFormat" verwenden und mache "," das Trennungssymbol. Nach der Eingabe ist der Schlüssel "1" und der value ist "10 10" .

Aber das Ergebnis, das ich bekommen habe, ist die ganze Information ist der Schlüssel, der Wert ist leer. Ich weiß nicht, wo das Problem ist.

Bitte geben Sie mir Hilfe, danke!

Dies ist der Beispielcode:

%Vor%     
whitesail 22.09.2012, 02:12
quelle

4 Antworten

1

Das Trennzeichen kann unter dem Attributnamen mapreduce.input.keyvaluelinerecordreader.key.value.separator angegeben werden. Das Standardtrennzeichen ist das Registerzeichen ('\t') . Ändern Sie also in Ihrem Fall die Zeile conf.set("key.value.separator.in.input.line",",");
zu

%Vor%

und das sollte den Trick machen

    
Sasikanth Bharadwaj 28.05.2014 08:57
quelle
0

Sie benutzen das Zeug richtig.

Link Während Sie Ihren aktuellen Code ausführen, ist die Ausgabe wie

%Vor%

Warum ist das so, weil

?

Sie geben zwei Schlüssel / Wert-Paare aus.

Erstes Schlüssel / Wert-Paar ist Wert und das zweite Schlüssel-Wert-Paar ist Schlüsseltaste

was ist die richtige? Wert ist 10 und der Schlüssel ist 1

%Vor%     
Verwenden Sie KeyValueTextInputFormat
Unmesha SreeVeni 29.09.2014 09:51
quelle
0

Ich habe gerade versucht, dass KeyValueTextInputFormat Schlüssel und Werte genommen wird, wenn sie eine Registerkarte zwischen ihnen haben, sonst wird es die komplette Zeile als Schlüssel nehmen, und es wird nichts im Wert sein.

Also müssen wir 1 10,10 anstelle von 1, 10 10

verwenden     
Govind Singh 25.01.2014 09:37
quelle
-1

Die Eingabedatei wird in Schlüsselwertpaare konvertiert und die Kartenfunktion wird für alle diese Paare aufgerufen. Im Falle Ihres Beispiels ist die Eingabe für die Zuordnung ein Schlüssel (der wahrscheinlich 1 ist, da es die Zeilennummer in der Datei ist) und am wichtigsten ist Ihr Wert 1,10 10.

Nun können Sie alles aus Ihrem Mapper ausgeben, das erst nach dem Tauschen und Sortieren aller Ausgaben aus dem Mapper zur Reducer-Klasse der Reducer-Klasse geht.

Wenn Sie also context.write (value) von Ihrem Mapper und von Ihrem Reducer ausgeben, erhalten Sie eindeutige Zeilen aus all Ihren Dateien.

Ich glaube nicht, dass ich erklärt habe, was Sie wollen, aber das ist die grundlegende Sache, die in Hadoop Map-Reduce passiert.

    
faizan 24.09.2012 12:12
quelle

Tags und Links