首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >猪:总结场

猪:总结场
EN

Stack Overflow用户
提问于 2015-02-05 22:51:17
回答 1查看 103关注 0票数 1

我有一些人口普查数据,其中每一行都有一个代表县和地区的数字,代表一定年龄范围内的人数(例如,5岁及以下,5至17岁,等等)。在删除不需要的列的一些初始处理之后,我将标记的数据分组如下(labeled_data属于模式{ chararray,pop1: int,pop2: int,pop3: int,pop4: int,pop5: int,pop6: int,pop7: int,pop8: int}):

grouped_data =按县划分的filtered_data群;

所以grouped_data是模式的

{组: chararray,filtered_data:{(县: chararray,pop1: int,pop2: int,pop3: int,pop4: int,pop5: int,pop6: int,pop7: int,pop8: int)}

现在我想总结一下每个县的所有流行田园,每个县的人口总数。我很确定要这样做的命令是形式的

pop_sums = FOREACH grouped_data生成群,SUM(,关于pop字段的东西,);

但我一直没能让这件事起作用。提前感谢!

我不知道这是否有用,但以下是grouped_data的代表性条目:

(147,{(147,385,100,283,468,649,738,933,977),(147,229,655,178,288,394,579,481)})

请注意,这147个条目实际上是县代码,而不是人口。因此,它们的类型为chararray。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-06 01:58:33

你能试试下面的方法吗?

示例输入:

代码语言:javascript
复制
147,1,1,1,1,1,1,1,1
147,2,2,2,2,2,2,2,2
145,5,5,5,5,5,5,5,5

PigScript:

代码语言:javascript
复制
A = LOAD 'input' USING PigStorage(',') AS(country:chararray,pop1:int,pop2:int,pop3:int,pop4:int,pop5:int,pop6:int,pop7:int,pop8:int);
B = GROUP A BY country;
C = FOREACH B GENERATE group,(SUM(A.pop1)+SUM(A.pop2)+SUM(A.pop3)+SUM(A.pop4)+SUM(A.pop5)+SUM(A.pop6)+SUM(A.pop7)+SUM(A.pop8)) AS totalPopulation;
DUMP C;

输出:

代码语言:javascript
复制
(145,40)
(147,24)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28355566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档