Jan 19, 2016

Apache Pig Exercises: 9. List Empno, Ename, Sal, Daily Sal of all Employees in ascending order of AnnSal


In this post the sample Apache Pig script will display all unique job title in a descending order.

The examples and exercise scripts are created using Apache Pig current version r0.14.0.

@ Test data structure:
Please refer to Apache Pig learning series intro... post for the file structures, visit the reference section shown at the bottom of the post for more. 

@ Sample data:

Employees data table:


Department data table:


@ Apache Pig Script:

List all employee records in asc order of dept nbr. and desc of job title:

grunt> 
/* load data file in pig reference variable */
data = LOAD '/Documents/tbl_EMP.txt' USING PigStorage(',') as (empno:int, ename:chararray, job:chararray, mgr:int, hiredate:chararray, sal:float, comm:float, deptno:int);
all_recs = foreach data generate empno,ename,job,mgr,hiredate,sal ,(int)(sal/30) as dailysal, (int)(sal*12) as annsal, comm,deptno;
ordr_recs = order all_recs by annsal;
dump ordr_recs;

@Apache Pig Output on Grunt Shell: 


(7369,SMITH,CLERK,7902,1980-12-17,800.0,26,9600,,20)
(7900,JAMES,CLERK,7698,1981-12-03,950.0,31,11400,,30)
(7876,ADAMS,CLERK,7788,1983-01-12,1100.0,36,13200,,20)
(7521,WARD,SALESMAN,7698,1981-02-22,1250.0,41,15000,500.0,30)
(7654,MARTIN,SALESMAN,7698,1981-09-28,1250.0,41,15000,1400.0,30)
(7934,MILLER,CLERK,7782,1982-01-23,1300.0,43,15600,,10)
(7844,TURNER,SALESMAN,7698,1981-09-08,1500.0,50,18000,0.0,30)
(7499,ALLEN,SALESMAN,7698,1981-02-20,1600.0,53,19200,300.0,30)
(7782,CLARK,MANAGER,7839,1981-06-09,2450.0,81,29400,,10)
(7698,BLAKE,MANAGER,7839,1981-05-01,2850.0,95,34200,,30)
(7566,JONES,MANAGER,7839,1981-04-02,2975.0,99,35700,,20)
(7788,SCOTT,ANALYST,7566,1982-12-09,3000.0,100,36000,,20)
(7902,FORD,ANALYST,7566,1981-12-03,3000.0,100,36000,,20)

(7839,KING,PRESIDENT,,1981-11-17,5000.0,166,60000,,10)

@ Apache Pig Reference/s:
  • https://pig.apache.org
  • http://pig.apache.org/docs/r0.14.0/
_________________
Thank you!

0 comments:

Post a Comment