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

Hadoop 如何使用Pig计算字母的数量,而不是单词的数量,hadoop,mapreduce,apache-pig,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

各位,, 我找到了很多关于数词的例子,但找不到数数字母的例子。我只想把单词分成几个字母,然后数一数,但我的代码错了。有人能帮我吗?非常感谢。这是我的代码:

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;

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

C = foreach B generate flatten(TOKENIZE(REPLACE(words,'','|'), '|')) as letter;
我使用的技巧是用一个特殊字符(|)替换每个字母边界,然后将其标记为分隔符。您还可以使用不常见的字符串序列而不是特殊字符