Apache Pig - BagToString ()

El cerdo latino BagToString()La función se usa para concatenar los elementos de una bolsa en una cadena. Mientras concatenamos, podemos colocar un delimitador entre estos valores (opcional).

Generalmente las bolsas están desordenadas y se pueden arreglar usando ORDER BY operador.

Sintaxis

A continuación se muestra la sintaxis de la BagToString() función.

grunt> BagToString(vals:bag [, delimiter:chararray])

Ejemplo

Supongamos que tenemos un archivo llamado dateofbirth.txt en el directorio HDFS /pig_data/Como se muestra abajo. Este archivo contiene la fecha de nacimiento.

dateofbirth.txt

22,3,1990
23,11,1989
1,3,1998
2,6,1980
26,9,1989

Y hemos cargado este archivo en Pig con el nombre de la relación. dob Como se muestra abajo.

grunt> dob = LOAD 'hdfs://localhost:9000/pig_data/dateofbirth.txt' USING PigStorage(',')
   as (day:int, month:int, year:int);

Conversión de bolsa en cuerda

Utilizando la bagtostring()función, podemos convertir los datos en la bolsa a una cadena. Agrupemos eldobrelación. La operación de grupo producirá una bolsa que contiene todas las tuplas de la relación.

Agrupar la relación dob utilizando la Group All operador y almacenar el resultado en la relación denominada group_dob Como se muestra abajo.

grunt> group_dob = Group dob All;

Producirá una relación como se muestra a continuación.

grunt> Dump group_dob; 
 
(all,{(26,9,1989),(2,6,1980),(1,3,1998),(23,11,1989),(22,3,1990)})

Aquí, podemos observar una bolsa que tiene todas las fechas de nacimiento como tuplas. Ahora, convierta la bolsa en una cuerda usando la funciónBagToString().

grunt> dob_string = foreach group_dob Generate BagToString(dob);

Verificación

Verifica la relación dob_string utilizando la DUMP operador como se muestra a continuación.

grunt> Dump dob_string;

Salida

Producirá la siguiente salida, mostrando el contenido de la relación dob_string.

(26_9_1989_2_6_1980_1_3_1998_23_11_1989_22_3_1990)