Apache Pig - TAMAÑO ()

los SIZE() La función de Pig Latin se utiliza para calcular el número de elementos en función de cualquier tipo de datos de Pig.

Sintaxis

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

grunt> SIZE(expression)

Los valores devueltos varían según los tipos de datos en Apache Pig.

Tipo de datos Valor
int, largo, flotante, doble Para todos estos tipos, la función de tamaño devuelve 1.
Matriz de caracteres Para una matriz de caracteres, la función size () devuelve el número de caracteres de la matriz.
Matriz de bytes Para un bytearray, la función size () devuelve el número de bytes de la matriz.
Tupla Para una tupla, la función size () devuelve el número de campos en la tupla.
Bolso Para una bolsa, la función size () devuelve el número de tuplas en la bolsa.
Mapa Para un mapa, la función size () devuelve el número de pares clave / valor en el mapa.

Ejemplo

Supongamos que tenemos un archivo llamado employee.txt en el directorio HDFS /pig_data/ Como se muestra abajo.

employee.txt

1,John,2007-01-24,250
2,Ram,2007-05-27,220  
3,Jack,2007-05-06,170  
3,Jack,2007-04-06,100  
4,Jill,2007-04-06,220  
5,Zara,2007-06-06,300  
5,Zara,2007-02-06,350

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

grunt> employee_data = LOAD 'hdfs://localhost:9000/pig_data/ employee.txt' USING PigStorage(',')
   as (id:int, name:chararray, workdate:chararray, daily_typing_pages:int);

Calcular el tamaño del tipo

Para calcular el tamaño del tipo de una columna en particular, podemos usar el SIZE()función. Calculemos el tamaño del tipo de nombre como se muestra a continuación.

grunt> size = FOREACH employee_data GENERATE SIZE(name);

Verificación

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

grunt> Dump size;

Salida

Producirá la siguiente salida, mostrando el contenido de la relación sizecomo sigue. En el ejemplo, hemos calculado el tamaño delnamecolumna. Como es de tipo varchar, elSIZE() La función le da el número de caracteres en el nombre de cada empleado.

(4) 
(3) 
(4) 
(4) 
(4) 
(4) 
(4)