如何匹配PIG中的','?
问题描述:
下面的猪脚本给出了文件中各种字符的计数。它适用于除','以外的所有字符。如何匹配PIG中的','?
我的代码:
A = load 'a.txt';
B = foreach A generate flatten(TOKENIZE((chararray)$0)) as word;
C = filter B by word matches '(.+)';
D = foreach C generate flatten(TOKENIZE(REPLACE(word,'','|'), '|')) as letter;
E = group D by letter;
F = foreach E generate COUNT(D), group;
store F into 'pigfiles/wordcount';
这所有字符匹配除了 '' 并给出了一个输出。
输入:(猫A.TXT)
HI, I.
输出:(生成文件输出)
1 H
2 I
1 .
它不给的,
计数的文件中。我不明白为什么它没有给出计数','!
答
第一个标记大小将消除标记分隔符空间,双引号(“),昏迷(,)括号(()),星号(*),而是使用替换标记每个字符,然后进行计数。参见下面的
输入
HI, I.
PigScript
A = LOAD 'test3.txt';
B = FOREACH A GENERATE FLATTEN(TOKENIZE(REPLACE((chararray)$0,'','|'), '|')) AS letter;
C = FILTER B BY letter != ' ';
D = GROUP C BY letter;
E = FOREACH D GENERATE COUNT(C.letter), group;
DUMP E;
输出
也许[这](http://www.crackinghadoop.com/hadoop-pig-loading-files-with-quotes-and-comma-delimiters/)会帮助你。 –
@TimBiegeleisen尝试过,但仍然不匹配'',' –
@AniMenon如果回答您的问题,请接受答案。 –