【发布时间】:2013-10-25 08:52:04
【问题描述】:
我正在尝试对 pig 进行汇总操作。
例如,我有一个名为t3的表:
product price country
A 5 Italy
B 4 USA
C 12 France
A 5 Italy
B 7 Russia
我需要使用 2 个键进行汇总操作:product 和 country。
- 我使用
product和country进行连接操作 - 我必须计算价格,在
CONCAT结果重复的地方总结价格值 - 如果
CONCAT结果不重复,价格与t3表中的价格保持一致。
预期的输出可能是:
CONCAT Price_1
AItaly 10
BUSA 4
CFrance 12
BRussia 7
在 pig 我写了以下脚本(代码是错误的,但只是为了说明一个想法):
t3 = LOAD '/home/Desktop/3_table/3_table.data' AS (product:chararray, price:int, country:chararray);
c1 = FOREACH t3 GENERATE CONCAT(product, country);
c2 = FOREACH t3 GENERATE *, c1;
product_1 = GROUP c2 BY c1;
price_1 = FOREACH product_1 GENERATE group, SUM(product_1.price);
STORE price_1 INTO 'summarise_by_2_ID' USING PigStorage('\t');
也许有人可以解释如何达到预期的结果? 提前非常感谢!
【问题讨论】:
标签: sum apache-pig acl