2016-05-10 17 views
0

Ich habe eine txt, und dann lud ich Zeilen aus dem txt, mit diesem Skript:Wie kann ich Zeilen in Apache Pig filtern?

lines = LOAD '/user/hadoop/HDFS_File.txt' AS (line:chararray); 

Ich brauche alle Linien zu filtern, mit einigen Worten. Ich meine:

wenn die Leitung:

'Hi, I'm lord Stark, how are you?' 

Ich suche müssen: "how are you" in der Linie für jede Zeile in einer txt und die Vorkommen zählen.

Ich habe versucht, mit:

sentences = FOREACH lines GENERATE (FILTER lines BY (f1 matches 'how are you')) AS sent; 

Aber es funktioniert nicht. Bitte helfen Sie mir.

Antwort

1

Verwenden im Anschluss an die Datensätze zu filtern, die "Wie geht es Ihnen" string:

lines = LOAD '/user/hadoop/HDFS_File.txt' AS (line:chararray); 
sentence = FILTER lines BY (line matches '.*how are you.*'); 

die Anzahl der Vorkommen zu erhalten:

grouped= GROUP sentence ALL; 
sentence_COUNT = FOREACH grouped GENERATE COUNT(sentence); 
Verwandte Themen