hadoop - Pig Latin 像这样获取 SUM() 函数的输出?

标签 hadoop mapreduce apache-pig

我有一些数据,比如(名字,分数) 一个 10 乙 25 C 15 一个 5 一个 36 乙98 C 78 C 78 乙12

data = LOAD 'demo.txt'  using PigStorage (',') as (name : chararray , score : int);
groupScore = GROUP data by score;
totalscore = FOREACH groupScore Generate data.name , SUM(data.score);

当我使用 SUM() 函数时,输出结果如下

{(A)(A)(A), (51)} 
{(B)(B)(B), (135)}

我想知道是否有任何我可以展示的东西

{(A), (51)},

这不是在每次出现时都重复“名称”字段吗?
任何指导都会有所帮助。

最佳答案

下面是解决方案的查询

data = LOAD 'demo.txt' USING PigStorage(',') AS (name:chararray,score:int);
groupScore = group data by name;
result= FOREACH groupScore GENERATE group,SUM(data.score);

输出

(A,51) (B,135) (C,171)

关于hadoop - Pig Latin 像这样获取 SUM() 函数的输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44740692/

相关文章:

java - 更改mapreduce的默认定界符

hadoop - 如何在 pig 中总结2个日志文件

hadoop - 将矩阵数据模型转换为文件数据模型以推荐Mahout

hadoop - 如何在 Pig 中过滤时间戳

java - 如何使Hadoop reducer 为单个键输出多个值

json - 如何使用PIG加载自定义记录(普通数据和Json数据的混合)

Hadoop 推测任务执行

hadoop - HDFS的文件更新要求是什么?

Hadoop - 如何从实现可写接口(interface)切换到使用 Avro 对象?

python - Pig Python UDF在MapReduce模式下失败