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)