猪脚本找到每个部门的最高,最低,平均,工资总和

时间:2017-06-14 01:32:56

标签: apache hadoop apache-pig

在按部门编号对数据进行分组后,我陷入困境。我所遵循的步骤

grunt> A = load '/home/cloudera/naveen1/hive_data/emp_data.txt' using PigStorage(',') as (eno:int,ename:chararray,job:chararray,sal:float,comm:float,dno:int); 
grunt> B = group A by don;
grunt> describe B;
B: {group: int,A: {(eno: int,ename: chararray,job: chararray,sal: float,comm: float,dno: int)}}

请让我知道此后的步骤。我对嵌套的Foreach语句执行感到有点困惑。

数据包含eno,ename,sal,job,commisson,deptno,我想要提取每个部门的最大sal和员工获得最高薪水。

类似于min sal。

1 个答案:

答案 0 :(得分:1)

分组后使用聚合函数。

cast

要获取每个部门的名称,eno和max sal,请对记录进行排序并获取最上一行

C = FOREACH B GENERATE group,MAX(A.sal),MIN(A.sal),AVG(A.sal),SUM(A.sal);
DUMP C;