如何匹配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 . 

它不给的,计数的文件中。我不明白为什么它没有给出计数','

+1

也许[这](http://www.crackinghadoop.com/hadoop-pig-loading-files-with-quotes-and-comma-delimiters/)会帮助你。 –

+0

@TimBiegeleisen尝试过,但仍然不匹配'',' –

+0

@AniMenon如果回答您的问题,请接受答案。 –

第一个标记大小将消除标记分隔符空间,双引号(“),昏迷(,)括号(()),星号(*),而是使用替换标记每个字符,然后进行计数。参见下面的

输入

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; 

输出

Output