sql >> Database teknologi >  >> RDS >> Mysql

gruppe concat ækvivalent i gris?

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

Nu X vil være:

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

Nu skal du bruge den indbyggede UDF BagToTuple :

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

output skal nu indeholde det du ønsker. Du kan også flette outputtrinnet ind i flettetrinnet:

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



  1. FEJL 1045 (28000):Adgang nægtet for brugeren 'root'@'localhost' (ved hjælp af adgangskode:JA)

  2. Sætte Rails over toppen af ​​en eksisterende database

  3. Hvad er det korrekte navn for en tilknytningstabel (et mange-til-mange forhold)

  4. PyMySQL ved hjælp af localhost vs socket usammenhængende adfærd