apache—如何找出一个组中有多少个元组

unftdfkk  于 2021-06-24  发布在  Pig
关注(0)|答案(1)|浏览(318)

这是我的意见
10001美国运通,德克萨斯州,y 10001美国银行,伊利诺伊州,n 10001大通,新泽西州,y 10002大通,伊利诺伊州,y 10002美国银行,德克萨斯州,y 10002美国运通,新泽西州,y

10001 AMERICAN EXPRESS,TX, Y
10001 BOFA,IL,N
10001 CHASE,NJ,Y
10002 CHASE,IL,Y
10002 BOFA,TX,Y

我必须使用键中间输出来分组
10001,{(美国运通,德克萨斯州,y),(美国银行,伊利诺伊州,n),(大通,新泽西州,y)}10002,{(大通,伊利诺伊州,y),(美国银行,德克萨斯州,y)}

10001, {(AMERICAN EXPRESS,TX,Y),(BOFA,IL,N),(CHASE,NJ,Y)}
10002, {(CHASE,IL,Y),(BOFA,TX,Y)}

然后我必须找出每个组中有多少个键有一个以上的元组。
1001,计数(元组)>1-计数-3 1002,计数(元组)>1-计数2
有人能帮帮我吗。

hk8txs48

hk8txs481#

对第二个字段进行计数,以获取分组后的计数,并筛选计数大于1的所有组。

A = LOAD 'data.txt' USING PigStorage(',') AS (f1:int,f2:chararray,f3:chararray,f4:chararray);
B = GROUP A BY f1;
C = FOREACH B GENERATE group,COUNT(f2) AS Total;
D = FILTER C BY (Total > 1);
DUMP D;

相关问题