Apache Pig - MAX ()
Le cochon latin MAX()La fonction est utilisée pour calculer la valeur la plus élevée pour une colonne (valeurs numériques ou chararrays) dans un sac à une seule colonne. Lors du calcul de la valeur maximale, leMax() La fonction ignore les valeurs NULL.
Note -
Pour obtenir la valeur maximale globale, nous devons effectuer un Group All et calculez la valeur maximale à l'aide de la fonction MAX ().
Pour obtenir la valeur maximale d'un groupe, nous devons le regrouper en utilisant le Group By opérateur et continuez avec la fonction maximale.
Syntaxe
Ci-dessous, la syntaxe du Max() fonction.
grunt> Max(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 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 GPA maximum
Nous pouvons utiliser la fonction intégrée MAX()(sensible à la casse) pour calculer la valeur maximale à partir d'un ensemble de valeurs numériques données. 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 maximum global de GPA, c'est-à-dire le maximum parmi les valeurs de GPA de tous les élèves utilisant le MAX() fonction comme indiqué ci-dessous.
grunt> student_gpa_max = foreach student_group_all Generate
(student_details.firstname, student_details.gpa), MAX(student_details.gpa);
Vérification
Vérifier la relation student_gpa_max en utilisant le DUMP opérateur comme indiqué ci-dessous.
grunt> Dump student_gpa_max;
Production
Il produira la sortie suivante, affichant le contenu de la relation student_gpa_max.
(({(Bharathi),(Komal),(Archana),(Trupthi),(Preethi),(Rajesh),(siddarth),(Rajiv) } ,
{ (72) , (83) , (87) , (75) , (93) , (90) , (78) , (89) }) ,93)