为什么我们需要在运行平均功能之前对关系进行分组

时间:2016-03-14 05:51:26

标签: apache-pig

请考虑这个猪脚本的例子..

我有一个小数据集,如下所示..名为

student_details.txt

  

001,拉吉夫,雷迪21,9848022337,海得拉巴,89   002,siddarth,Battacharya,22,9848022338,加尔各答,78   003,拉杰什,卡纳,22,9848022339,德里,90   004,Preethi,瓦尔,21,9848022330,普纳,93   005,Trupthi,Mohanthy,23,9848022336,Bhuwaneshwar,75   006,阿奇纳,米什拉,23,9848022335,奈,87   007,科莫尔,纳亚克24,9848022334,trivendram,83   008,Bharathi,Nambiayar,24,9848022333,Chennai,72

想法是计算学生平均成绩GPA。

通过运行以下命令获得解决方案

  

student_details = LOAD' /home/edureka/praveen/files/student_details.txt'使用PigStorage(',')as(id:int,firstname:chararray,lastname:chararray,age:int,phone:chararray,city:chararray,gpa:int);

     

student_group_all =分组student_details全部;

     

student_gpa_avg = foreach student_group_all生成(student_details.firstname,student_details.gpa),AVG(student_details.gpa);

我的问题是,为什么我需要将ALL分组以找到平均值...如果有一个简单的平均函数,我可以直接在student_details上运行。请帮助,因为我的常识是折腾..可能是我使用太多了!!

1 个答案:

答案 0 :(得分:1)

如果你谷歌“聚合功能”,会出现以下定义 -

在数据库管理中,聚合函数是一种函数,其中多行的值被组合在一起作为某些条件的输入,以形成更重要的意义或度量的单个值,例如集合,包或列表。常用的聚合函数包括:Average()(即算术平均值)Count()。

希望这有点放松你的常识:)。