hadoop - 计算 PIG 列中值的频率?

标签 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

最佳答案

我想通了。

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

关于hadoop - 计算 PIG 列中值的频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20861690/

相关文章:

hadoop - 导入NLTK不适用于Hadoop Streaming

scala - Spark 1.6:将数据帧存储到hdfs中的多个csv文件中(按ID划分)

hadoop - 接口(interface) InputFormat 与类 InputFormat

json - 为什么 Pig 中的 CROSS 会使数据变平?

hadoop - Pig Latin 跨组求和

hadoop - Pig sum 因 +ve 和 -ve 值而失败

performance - 提高配置单元jdbc的性能

hadoop - 我可以在没有完整安装 Hadoop 的情况下从本地客户端使用 Snappy 压缩吗?

python - Hadoop Streaming Job 在 python 中失败

ubuntu - 简单 Hadoop Map Reduce 中的错误