我想用Pig做个手术。
例如,我有一个名为 t3
:
product price country
A 5 Italy
B 4 USA
C 12 France
A 5 Italy
B 7 Russia
我需要使用两个键执行汇总操作: product
以及 country
.
我使用 product
以及 country
我要计算价格,总结价格的价值就在哪里 CONCAT
结果重复
哪里 CONCAT
结果不会重复,价格仍与中相同 t3
table。
预期输出可能是:
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');
也许有人能解释如何达到预期的结果?提前多谢了!
1条答案
按热度按时间w8biq8rn1#
如果要计算每个产品和国家的总和,则不需要使用concat函数。按这两个字段分组。
实际上,这里不需要concat,它只是按预期格式化输出。