Apache Pig - BagToString ()
Le cochon latin BagToString()La fonction est utilisée pour concaténer les éléments d'un sac en une chaîne. Lors de la concaténation, nous pouvons placer un délimiteur entre ces valeurs (facultatif).
Généralement, les sacs sont désordonnés et peuvent être arrangés en utilisant ORDER BY opérateur.
Syntaxe
Vous trouverez ci-dessous la syntaxe du BagToString() fonction.
grunt> BagToString(vals:bag [, delimiter:chararray])
Exemple
Supposons que nous ayons un fichier nommé dateofbirth.txt dans le répertoire HDFS /pig_data/comme indiqué ci-dessous. Ce fichier contient la date de naissance.
dateofbirth.txt
22,3,1990
23,11,1989
1,3,1998
2,6,1980
26,9,1989
Et nous avons chargé ce fichier dans Pig avec le nom de la relation dob comme indiqué ci-dessous.
grunt> dob = LOAD 'hdfs://localhost:9000/pig_data/dateofbirth.txt' USING PigStorage(',')
as (day:int, month:int, year:int);
Conversion d'un sac en ficelle
En utilisant le bagtostring()fonction, nous pouvons convertir les données du sac en chaîne. Regroupons lesdobrelation. L'opération de groupe produira un sac contenant tous les tuples de la relation.
Regrouper la relation dob en utilisant le Group All opérateur, et stockez le résultat dans la relation nommée group_dob comme indiqué ci-dessous.
grunt> group_dob = Group dob All;
Cela produira une relation comme indiqué ci-dessous.
grunt> Dump group_dob;
(all,{(26,9,1989),(2,6,1980),(1,3,1998),(23,11,1989),(22,3,1990)})
Ici, on peut observer un sac ayant toutes les dates de naissance en tuples. Maintenant, convertissons le sac en chaîne en utilisant la fonctionBagToString().
grunt> dob_string = foreach group_dob Generate BagToString(dob);
Vérification
Vérifier la relation dob_string en utilisant le DUMP opérateur comme indiqué ci-dessous.
grunt> Dump dob_string;
Production
Il produira la sortie suivante, affichant le contenu de la relation dob_string.
(26_9_1989_2_6_1980_1_3_1998_23_11_1989_22_3_1990)