2017-07-05 12 views
0

Ceci est mon entréeComment FindOut combien nombre de tuples sont là dans un GROUPE

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

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

Je dois groupe mon aide de la touche sortie intermédiaire

10001, {(American Express, TX, Y), (BOFA, IL, N), (CHASE, NJ, Y)} 10002, {(CHASE, IL, Y), (BOFA, TX, y)}

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

Ensuite, je dois savoir combien de clés sont là dans chaque groupe ayant plus d'un tuple.

1001, COUNT (tuples)> 1 - compter -3 1002, Count (tuples)> 1 - Chef d'accusation 2

Quelqu'un peut-il s'il vous plaît aidez-moi.

+0

Quelqu'un peut-il s'il vous plaît aidez-moi. Si vous commencez à accepter les réponses, vous obtiendrez plus de réponses. –

+0

Je ne pouvais trouver aucune option pour marquer la réponse. – satya

Répondre

0

COUNT sur le second champ pour obtenir les comptes après le regroupement et le filtre tous les groupes avec un compte> 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; 
+0

Merci beaucoup de fournir des solutions rapides – satya