计算PIG中一列中的值的频率?

时间:2013-12-31 18:22:56

标签: hadoop mapreduce apache-pig cloudera

我有这样的事情:

ColA ColB
a    xxx
b    yyy
c    xxx
d    yyy
e    xxx

我需要找出ColB的每个值出现的次数。

输出:

xxx 3
yyy 2

以下是我一直在尝试的内容:

考虑A有我的数据,

grunt> B = GROUP A by ColB;
grunt> DESCRIBE B;
B: {group: chararray,A: {(ColA: chararray,ColB: chararray)}}

现在我很困惑,我会做这样的事吗?

grunt> C = FOREACH B GENERATE COUNT(B.ColB)

所以我需要输出像这样,

xxx 3
yyy 2

2 个答案:

答案 0 :(得分:1)

我明白了。

C = FOREACH B GENERATE GROUP AS ColB, COUNT(A) as count;

答案 1 :(得分:0)

'group as' 使用小写,这对我有用:

C = FOREACH B GENERATE group as ColB, COUNT(A) as count;