2016-04-25 5 views
0

Der Name meiner Eingabedatei ist words.txt wie unten. Außerdem gibt es keinen Platz in jedem Datensatz dieser unteren Datei.Wie ersetzen Funktion in Pig funktioniert?

Hi 
Hi 
How 

Ich lade diese Datei in Pig

words = LOAD '/user/inputs/words.txt' USING PigStorage() AS (line:chararray); 

words_each = FOREACH words GENERATE REPLACE(line,'','|') ; 

dump words_each; 

Ich erhalte Ausgabe als

|H|i| 
|H|i| 
|H|o|w| 

Aber ich würde gerne wissen, wie genau funktioniert behandelt REPLACE ‚‘, die meine zweite ist Argument in REPLACE-Funktion.

Da ist kein leerer Platz in meiner Datei, wie komme ich dann | in meiner Ausgabe.

Antwort

1

Nun, nach Ihrer Aussage ist REPLACE Funktion auf '' aufgerufen. Es enthält keine Leerzeichen.
Wenn Sie den Raum ersetzen möchten, müssen Sie es wie folgt geben ' '. Sowohl +

sind verschiedene Bedingungen, wie unten angegeben:

words_each = FOREACH words GENERATE REPLACE(line,'','|') ; // without space 
words_each = FOREACH words GENERATE REPLACE(line,' ','|') ; // with space 

Erste Bedingung wird das Pipe-Symbol hinzufügen (|) nach jedem Zeichen, während der 2. Bedingung wird keine Auswirkungen, weil es keinen Platz in Ihrem Dateiinhalt.

+0

Danke für Ihre Antwort. –