Apache Pig - COUNT ()

le COUNT()La fonction Pig Latin est utilisée pour obtenir le nombre d'éléments dans un sac. En comptant le nombre de tuples dans un sac, leCOUNT() La fonction ignore (ne comptera pas) les tuples ayant une valeur NULL dans le FIRST FIELD.

Note -

  • Pour obtenir la valeur de comptage globale (nombre total de tuples dans un sac), nous devons effectuer un Group All et calculez la valeur de comptage à l'aide de la fonction COUNT ().

  • Pour obtenir la valeur de comptage d'un groupe (nombre de tuples dans un groupe), nous devons le regrouper à l'aide de l'opérateur Group By et procéder à la fonction de comptage.

Syntaxe

Ci-dessous, la syntaxe du COUNT() fonction.

grunt> COUNT(expression)

Exemple

Supposons que nous ayons un fichier nommé student_details.txt dans le répertoire HDFS /pig_data/ comme indiqué ci-dessous.

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

Et nous avons chargé ce fichier dans Pig avec la relation nommée student_details comme indiqué ci-dessous.

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);

Calcul du nombre de tuples

Nous pouvons utiliser la fonction intégrée COUNT()(sensible à la casse) pour calculer le nombre de tuples dans une relation. Regroupons la relationstudent_details en utilisant le Group All opérateur, et stockez le résultat dans la relation nommée student_group_all comme indiqué ci-dessous.

grunt> student_group_all = Group student_details All;

Cela produira une relation comme indiqué ci-dessous.

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)})

Calculons maintenant le nombre de tuples / enregistrements dans la relation.

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

Vérification

Vérifier la relation student_count en utilisant le DUMP opérateur comme indiqué ci-dessous.

grunt> Dump student_count;

Production

Il produira la sortie suivante, affichant le contenu de la relation student_count.

8