hadoop - 使用Pig是计算元组中数字的最佳方法

标签 hadoop apache-pig

我正在处理元数据:

dump c;
(20
5
5
)
(1
1
1
5
10
)

我想要实现的输出是统计每个数字的总和,所以像这样:
 (1,3)
 (5,3)
 (10,1)
 (20,1)

我尝试了此命令,但未成功:
 d = FOREACH c GENERATE COUNT($0); 

我目前没有用于c的架构(不确定此时是否重要):
 describe c;
 Schema for c unknown.

寻找建议。

最佳答案

输入元组:

(20 5 5)
(1 1 1 5 10)

您可以通过标记化然后将其分组来获得元组中的计数。
A = LOAD 'file' using TextLoader() as (line:chararray);
B = FOREACH A GENERATE FLATTEN(TOKENIZE(line)) as (line:chararray);    
C = GROUP B BY line;                                                   
D = FOREACH C GENERATE group,COUNT(B);            
dump D;

输出:
(1,3)
(5,3)
(10,1)
(20,1)

关于hadoop - 使用Pig是计算元组中数字的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33202729/

相关文章:

python - Hadoop:在 Ubuntu 12.04 中通过 NameNode 格式化 HDFS 文件系统

hadoop - 如何用 pig latin 压平和减去列

sql - 在Hive查询中为列添加前导字符和零

hadoop - 是否可以压缩配置单元外部表中包含 Json 数据的 Parquet 文件?

Hadoop Yarn 容器日志丢失

apache-pig - pig : Force UDF to occur in Reducer or set number of mappers

hadoop - 无法使用 PIG 将数据插入 hbase 表

mapreduce - 如何在有或没有 Pig 的情况下使用 Cassandra 的 Map Reduce?

hadoop - 如何从 pig map 中获取变量键的值?

performance - HBase:为什么在达到 BlockCache 的最大大小之前会有被逐出的 block ?