Apache Pig - COUNT_STAR ()
le COUNT_STAR() fonction de Pig Latin est similaire à la COUNT()fonction. Il est utilisé pour obtenir le nombre d'éléments dans un sac. En comptant les éléments, leCOUNT_STAR() La fonction inclut les valeurs NULL.
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 count_star à l'aide de la fonction COUNT_STAR ().
Pour obtenir la valeur de comptage d'un groupe (nombre de tuples dans un groupe), nous devons le regrouper en utilisant le Group By et continuez avec la fonction count_star.
Syntaxe
Ci-dessous, la syntaxe du COUNT_STAR() fonction.
grunt> COUNT_STAR(expression)
Exemple
Supposons que nous ayons un fichier nommé student_details.txt dans le répertoire HDFS /pig_data/comme indiqué ci-dessous. Ce fichier contient un enregistrement vide.
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 le nom de la relation 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_STAR()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_STAR(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.
9
Depuis que nous avons utilisé la fonction COUNT_STAR(), il a inclus le tuple nul et a renvoyé 9.