Mysql
 sql >> Base de données >  >> RDS >> Mysql

groupe concat équivalent chez le porc?

grouped = GROUP table BY userid;
   X = FOREACH grouped GENERATE group as userid, 
                                table.clickcount as clicksbag, 
                                table.pagenumber as pagenumberbag;

Maintenant X sera :

{(155,{(2),(3),(1)},{(12),(133),(144)},
 (156,{(6),(7)},{(1),(5)}}

Maintenant, vous devez utiliser le builtin UDF BagToTuple :

output = FOREACH X GENERATE userid, 
                            BagToTuple(clickbag) as clickcounts, 
                            BagToTuple(pagenumberbag) as pagenumbers;

output devrait maintenant contenir ce que vous voulez. Vous pouvez également fusionner l'étape de sortie dans l'étape de fusion :

    output = FOREACH grouped GENERATE group as userid, 
                     BagToTuple(table.clickcount) as clickcounts, 
                     BagToTuple(table.pagenumber) as pagenumbers;