2016-04-17 7 views
0

Ich arbeite an unstrukturierten Textdatei. Ich möchte es von Hadoop verarbeiten , aber ich bekomme ein Problem, um die erforderlichen Daten aus der Datei .pls Hilfe zu extrahieren.So verarbeiten Sie unstrukturierte Textdaten von Hadoop (PIG/MapReduce)

meine Datei wie folgt aussieht: enter image description here

und ich erwarte eine Ausgabe wie;

enter image description here

+1

Bitte kopieren und einfügen, keine Screenshots verwenden. Das schließt den Schweinekode ein, den du geschrieben hast –

Antwort

0

Als ich die ungültigen Daten bekannt sind, könnten durch MapReduce, zumindest ignoriert werden, können Sie implementieren Ihre eigenen map das zu tun.

Zum Beispiel ist das Trennzeichen \n, jede Zeile mit dem angegebenen Format sollte akzeptiert werden, sonst wird ignoriert. In diesem Fall enthält jede Zeile 6 Spalten, die durch Leerzeichen voneinander getrennt sind.

//map @Override public void map(K key, V value, Context context) throws IOException, InterruptedException { // value contains line content, // verify value, only those valid lines should be accepted. }

+0

Danke Keith für deine Zeit, um mir helfende Hand zu geben. Keith Map Reduce wird die beste Wahl wie immer sein, aber ich möchte zu viel Coding Zeug reduzieren und in PIG Seite implementieren wollen. Wenn Sie Idee in Schwein dann teilen, wird es gd auch :) –

+0

Ich fürchte, Sie haben Recht. Ich würde dir raten, PIG zu benutzen, wenn ich schon gewusst hätte, was PIG ist. PIG ist professionell im Umgang damit und bequemer. Wie auch immer, ich bin immer noch neu in PIG und ich werde mehr darüber erfahren. Glückliche Reise. –

0

Sie könnten RANK in PIG verwenden, um Ihre Header zu filtern. Versuche dies.

A = LOAD 'file' as (line:chararray); 
B = RANK A; 
C = FILTER B BY rank_A > 5; 
D = FOREACH C GENERATE line; 
DUMP D; 
+0

Danke Vignesh, ich habe versucht, es funktioniert, aber was ist, wenn Szenario wie unten ist.Bitte überprüfen Sie meine nachstehende Post, wie ich nicht im Kommentar posten kann. –

Verwandte Themen