Apache pig 从包中删除组元素

Apache pig 从包中删除组元素,apache-pig,Apache Pig,这似乎应该是一件简单的事情,但我不确定该怎么做。在Pig中执行分组后,我只需要袋子中的数字元素(即移除组/关键元素),以便我可以对数值求和 那么,我该怎么做呢: (Key1, {(Key1, 10}) (Key2, {(Key2, 5), (Key2, 15)}) 为此: (Key1, {(10}) (Key2, {(5), (15)}) 如果要基于每个键对值求和,请使用以下方法 input.txt key1,10 key2,5 key2,15 Pigscript: A = LOAD 'i

这似乎应该是一件简单的事情,但我不确定该怎么做。在Pig中执行分组后,我只需要袋子中的数字元素(即移除组/关键元素),以便我可以对数值求和

那么,我该怎么做呢:

(Key1, {(Key1, 10})
(Key2, {(Key2, 5), (Key2, 15)})
为此:

(Key1, {(10})
(Key2, {(5), (15)})

如果要基于每个键对值求和,请使用以下方法

input.txt

key1,10
key2,5
key2,15
Pigscript:

A = LOAD 'inpput.txt' USING PigStorage(',') AS(key:chararray,value:int);
B = GROUP A BY key;
C = FOREACH B GENERATE group,SUM(A.value);
DUMP C;
(key1,10)
(key2,20)
(key1,{(10)})
(key2,{(5),(15)})
输出:

A = LOAD 'inpput.txt' USING PigStorage(',') AS(key:chararray,value:int);
B = GROUP A BY key;
C = FOREACH B GENERATE group,SUM(A.value);
DUMP C;
(key1,10)
(key2,20)
(key1,{(10)})
(key2,{(5),(15)})
如果您只想将这些值保存在包内,则将上面的“C”替换为这个值

C = FOREACH B GENERATE group,A.value;
DUMP C;
输出:

A = LOAD 'inpput.txt' USING PigStorage(',') AS(key:chararray,value:int);
B = GROUP A BY key;
C = FOREACH B GENERATE group,SUM(A.value);
DUMP C;
(key1,10)
(key2,20)
(key1,{(10)})
(key2,{(5),(15)})