Apache Pig - COUNT ()

los COUNT()La función de Pig Latin se usa para obtener el número de elementos en una bolsa. Mientras cuenta el número de tuplas en una bolsa, elCOUNT() La función ignora (no contará) las tuplas que tienen un valor NULO en el PRIMER CAMPO.

Note -

  • Para obtener el valor de recuento global (número total de tuplas en una bolsa), necesitamos realizar una Group All operación y calcule el valor de recuento usando la función COUNT ().

  • Para obtener el valor de recuento de un grupo (Número de tuplas en un grupo), necesitamos agruparlo usando el operador Agrupar por y proceder con la función de recuento.

Sintaxis

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

grunt> COUNT(expression)

Ejemplo

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

student_details.txt

001,Rajiv,Reddy,21,9848022337,Hyderabad,89
002,siddarth,Battacharya,22,9848022338,Kolkata,78 
003,Rajesh,Khanna,22,9848022339,Delhi,90 
004,Preethi,Agarwal,21,9848022330,Pune,93 
005,Trupthi,Mohanthy,23,9848022336,Bhuwaneshwar,75 
006,Archana,Mishra,23,9848022335,Chennai,87 
007,Komal,Nayak,24,9848022334,trivendram,83 
008,Bharathi,Nambiayar,24,9848022333,Chennai,72

Y hemos cargado este archivo en Pig con la relación llamada student_details Como se muestra abajo.

grunt> student_details = LOAD 'hdfs://localhost:9000/pig_data/student_details.txt' USING PigStorage(',')
   as (id:int, firstname:chararray, lastname:chararray, age:int, phone:chararray, city:chararray, gpa:int);

Calcular el número de tuplas

Podemos usar la función incorporada COUNT()(distingue entre mayúsculas y minúsculas) para calcular el número de tuplas en una relación. Agrupemos la relaciónstudent_details utilizando el Group All operador y almacenar el resultado en la relación denominada student_group_all Como se muestra abajo.

grunt> student_group_all = Group student_details All;

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

grunt> Dump student_group_all;
  
(all,{(8,Bharathi,Nambiayar,24,9848022333,Chennai,72),
(7,Komal,Nayak,24,9848022 334,trivendram,83),
(6,Archana,Mishra,23,9848022335,Chennai,87),
(5,Trupthi,Mohan thy,23,9848022336,Bhuwaneshwar,75),
(4,Preethi,Agarwal,21,9848022330,Pune,93),
(3 ,Rajesh,Khanna,22,9848022339,Delhi,90),
(2,siddarth,Battacharya,22,9848022338,Ko lkata,78),
(1,Rajiv,Reddy,21,9848022337,Hyderabad,89)})

Calculemos ahora el número de tuplas / registros en la relación.

grunt> student_count = foreach student_group_all  Generate COUNT(student_details.gpa);

Verificación

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

grunt> Dump student_count;

Salida

Producirá el siguiente resultado, mostrando el contenido de la relación student_count.

8