【问题标题】:How to count the number of letters, not words using Pig如何使用 Pig 计算字母的数量,而不是单词的数量
【发布时间】:2016-08-13 19:03:55
【问题描述】:

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

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;

【问题讨论】:

    标签: hadoop mapreduce apache-pig


    【解决方案1】:

    改变你的对应行如下:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多