如何计算字母数,而不是使用Pig的单词

时间:2016-04-20 20:56:07

标签: hadoop mapreduce apache-pig

大家, 我找到很多关于计数单词的例子,但找不到计数字母。我只是想把单词分成字母,并计算它们,但我的代码是错误的。有人可以帮我弄这个吗?非常感谢。这是我的代码:

A = load './in/*.txt';
B = FOREACH A GENERATE  FLATTEN(TOKENIZE(LOWER((chararray)$0))) as words;
C = FOREACH B GENERATE  FLATTEN(REGEX_EXTRACT_ALL(words, '([a-zA-Z])')) as letter;
D = group C by letter;
E = FOREACH D GENERATE COUNT(C), group;
DUMP E;

1 个答案:

答案 0 :(得分:0)

更改相应的行,如下所示:

C = foreach B generate flatten(TOKENIZE(REPLACE(words,'','|'), '|')) as letter;

我使用的技巧是用特殊字符(|)替换每个字母边界,然后用它作为分隔符进行标记。您还可以使用不常见的字符串序列而不是特殊字符。