Apache Pig - SIZE ()
o SIZE() A função Pig Latin é usada para calcular o número de elementos com base em qualquer tipo de dados Pig.
Sintaxe
Dada a seguir está a sintaxe do SIZE() função.
grunt> SIZE(expression)
Os valores de retorno variam de acordo com os tipos de dados no Apache Pig.
Tipo de dados | Valor |
---|---|
int, long, float, double | Para todos esses tipos, a função de tamanho retorna 1. |
Char array | Para uma matriz char, a função size () retorna o número de caracteres na matriz. |
Matriz de bytes | Para um bytearray, a função size () retorna o número de bytes no array. |
Tupla | Para uma tupla, a função size () retorna o número de campos na tupla. |
Bolsa | Para um bag, a função size () retorna o número de tuplas no bag. |
Mapa | Para um mapa, a função size () retorna o número de pares chave / valor no mapa. |
Exemplo
Suponha que temos um arquivo chamado employee.txt no diretório HDFS /pig_data/ como mostrado abaixo.
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
E carregamos este arquivo no Pig com o nome da relação employee_data como mostrado abaixo.
grunt> employee_data = LOAD 'hdfs://localhost:9000/pig_data/ employee.txt' USING PigStorage(',')
as (id:int, name:chararray, workdate:chararray, daily_typing_pages:int);
Calculando o tamanho do tipo
Para calcular o tamanho do tipo de uma coluna específica, podemos usar o SIZE()função. Vamos calcular o tamanho do tipo de nome conforme mostrado abaixo.
grunt> size = FOREACH employee_data GENERATE SIZE(name);
Verificação
Verifique a relação size usando o DUMP operador como mostrado abaixo.
grunt> Dump size;
Resultado
Ele irá produzir a seguinte saída, exibindo o conteúdo da relação sizedo seguinte modo. No exemplo, calculamos o tamanho donamecoluna. Uma vez que é do tipo varchar, oSIZE() função fornece o número de caracteres no nome de cada funcionário.
(4)
(3)
(4)
(4)
(4)
(4)
(4)