2017-05-31 15 views
0

Je veux concaténer tous les enregistrements en utilisant Pig. Après la charge dans les données avec « pigStorage » et label « -tagFile », mes données ressemble à:concaténer multi enregistrements dans le cochon

(filename, aaaaaaaaaaa) 
(filename, bbbbbbbbbbbbbb) 

Et le résultat que je préfère est:

(filename, aaaaaaaaaaabbbbbbbbbbbbbb) 

Ensuite, je peux stocker les données dans HBase avec le nom de fichier en tant que rowkey.

Toute suggestion sera appréciée.

Répondre

0

GROUPez les données par nom de fichier, puis utilisez BagToString pour CONCATER tous les sacs en une seule chaîne.

B = GROUP A BY filename; 
C = FOREACH B GENERATE group,BagToString(A.$1,''); 
DUMP C; 
+0

Merci pour la réponse, essayé et passe je suis arrivé (nom de fichier, {(nom de fichier, aaaaaaaa), (nom de fichier, bbbbbbbbbbb)}. J'ai aussi essayé d'enlever le nom de fichier intérieur tuple, et obtenu (nom de fichier , {(aaaaaaaaa), (bbbbbbbbbbb)} –

+0

@ Y.Wang J'ai mis à jour la réponse –

+0

Merci !!!! Ça marche! –