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)