2016-08-08 27 views
2
(ABC,****,tool1,12) 
(ABC,****,tool1,10) 
(ABC,****,tool1,13) 
(ABC,****,tool2,101) 
(ABC,****,tool3,11) 

以上是輸入數據在現場的基礎上進行比較的元組在豬

以下是我的豬數據集。

模式是:用戶名,IP,工具,時間

我想補充的持續時間相同的工具

輸出

(ABC,****,tool1,35) 
(ABC,****,tool2,101) 
(ABC,****,tool3,11 

回答

1

使用GROUP BY和在使用SUM持續時間。

A = LOAD 'data.csv' USING PigStorage(',') AS (Username:chararray,ip:chararray,tool:chararray,duration:int); 
B = GROUP A BY (Username,ip,tool); 
C = FOREACH B GENERATE FLATTEN(group) AS (Username,ip,tool),SUM(A.duration); 
DUMP C;