pig脚本,用于查找每个部门的最大、最小、平均工资和

bwntbbo3  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(223)

在按部门编号分组数据后,我被卡住了

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也一样。

yws3nbqq

yws3nbqq1#

分组后使用聚合函数。

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

为了得到每个部门的名字,eno和max sal,对记录进行排序,得到最上面一行

C = FOREACH B {
        max_sal = ORDER A BY sal DESC;
        max_limit = LIMIT max_sal 1;
        GENERATE FLATTEN(max_limit);
}
DUMP C;

相关问题