2017-08-06 11 views
0

C'est le code que j'ai écrit en PIG. Je veux imprimer la sortie comme:Problème avec le format de sortie en PIG

John, 3.850000023841858 
Mary, 3.925000011920929 

non au-dessous de sortie

DUMP C; 
    ({(John),(John),(John),(John)},3.850000023841858) 
    ({(Mary),(Mary),(Mary),(Mary)},3.925000011920929) 

A = CHARGE 'student.txt' AS (nom: chararray, terme: chararray, gpa: float);

DUMP A; 
(John,fl,3.9F) 
(John,wt,3.7F) 
(John,sp,4.0F) 
(John,sm,3.8F) 
(Mary,fl,3.8F) 
(Mary,wt,3.9F) 
(Mary,sp,4.0F) 
(Mary,sm,4.0F) 

B = GROUP A BY name; 

DUMP B; 
(John,{(John,fl,3.9F),(John,wt,3.7F),(John,sp,4.0F),(John,sm,3.8F)}) 
(Mary,{(Mary,fl,3.8F),(Mary,wt,3.9F),(Mary,sp,4.0F),(Mary,sm,4.0F)}) 

C = FOREACH B GENERATE A.name, AVG(A.gpa); 

DUMP C; 
({(John),(John),(John),(John)},3.850000023841858) 
({(Mary),(Mary),(Mary),(Mary)},3.925000011920929) 

Répondre

0

Au lieu de A.name utilisation group

C = FOREACH B GENERATE group, AVG(A.gpa); 
+0

Merci beaucoup, il travaille – user6582997

+1

S'il vous plaît me guider, Comment marquer comme réponse – user6582997