ピッグラテン語の初心者はこちら。入力ファイル内の複数の文字列の出現をカウントしようとしています。
ここで、検索では大文字と小文字を区別しない必要があります。LOWER
pigには組み込み関数があることは知っていますが、どうすれば使用できますか?
例(入力ファイル):
28-Oct-13,7:00PM,Viraj,New to hadoop ! Eager to learn.
31-Dec-14,3:00PM,Vanguard,Designers, Developers, Doers, don't miss this upcoming San Francisco Hadoop
次のような文字列の数が必要です hadoop, dec, learn, python
hadoop 2
dec 1
learn 1
python 0
ピッグラテン語でこの検索を行うにはどうすればよいですか?
ありがとうございました。
これを試すことができますか?
入力
28-Oct-13,7:00PM,Viraj,New to hadoop ! Eager to learn.
31-Dec-14,3:00PM,?Vanguard,Designers, Developers, Doers, don't miss this upcoming San Francisco Hadoop
PigScript:
A = LOAD 'input' AS (line:chararray);
B = FOREACH A GENERATE FLATTEN(TOKENIZE(LOWER(line))) as word;
C = FOREACH B GENERATE ((word matches '.*hadoop.*'? 1:0)) as t1,((word matches '.*dec.*'?1:0)) as t2,((word matches '.*learn.*'?1:0)) as t3,((word matches '.*python.*'?1:0)) as t4;
D = GROUP C ALL;
E = FOREACH D GENERATE FLATTEN(TOBAG(CONCAT('hadoop',' ',(chararray)SUM(C.t1)),CONCAT('dec',' ',(chararray)SUM(C.t2)),CONCAT('learn',' ',(chararray)SUM(C.t3)),CONCAT('python',' ',(chararray)SUM(C.t4))));
DUMP E;
出力:
(hadoop 2)
(dec 1)
(learn 1)
(python 0)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加