51cto赵强HADOOP学习(十八)pig学习

什么是Pig?Pig的架构
    Pig latin可以进行排序、过滤、求和、分组、关联等常用操作,还可以自定义函数,这是一种面向数据分析处理的轻量级脚本语言
    Pig可以看做是pig latin到map-reduce的映射器

    Pig可以看做hadoop的客户端软件,可以连接到hadoop集群进行数据分析工作
    Pig方便不熟悉java的用户,使用一种较为简便的类似于SQL的面向数据流的语言pig latin进行数据处理

Pig的安装和启动
Pig的常用命令
Pig的数据模型
使用Pig Latin语句进行数据的分析
Pig的自定义函数
# tar -zxvf pig-0.16.0.tar.gz

vi /etc/profile
export PIG_HOME=/root/training/pig

export PATH=$PATH:$PIG_HOME/bin

export PIG_CLASSPATH=/root/training/hadoop/etc/hadoop

export JAVA_HOME=/usr/java/default

export PATH=$JAVA_HOME/bin:$PATH

source /etc/profile

vi ~/.bash_profile
export PIG_HOME=/root/training/pig

export PATH=$PATH:$PIG_HOME/bin

export PIG_CLASSPATH=/root/training/hadoop/etc/hadoop

export JAVA_HOME=/usr/java/default

export PATH=$JAVA_HOME/bin:$PATH

source ~/.bash_profile
本地模式
pig -x local

pig

pig常用命令
ls、cd、cat、mkdir、pwd

copyFromLocal、copyToLocal
copyFromLocal /root/a.avi /pigdata/a.avi 
copyToLocal /pigdata/a.avi /root/training/abc.avi
sh
sh ls
sh pwd
pwd

ls /
register、define


pig的数据模型
Bag:biao
Tuple:行,记录
Field:属性
Pig不要求同一个bag里面的各个tuple有相同数量或相同类型的field 

LOAD:指出载入数据的方法 
FOREACH:逐行扫描进行某种处理 
FILTER:过滤行 
DUMP:把结果显示到屏幕 
STORE:把结果保存到文件 

注意:启动historyserver:
                sbin/mr-jobhistory-daemon.sh start historyserver

mr-jobhistory-daemon.sh start historyserver
pig
cat /input/emp


1、加载数据到emp1的bag中
emp = load 'input/emp.csv' using PigStorage(',')
    as (empno:int,
        ename:chararray,
        mgr:int,
        hiredate:chararray,
        sal:int,
        comm:int,
        deptno:int);
        
2、查看emp的结构
    describe emp
    
    显示数据
        dump emp

3、查询10号部门员工
    emp10= filter emp by deptno=10;
    dump emp10

4、查看10号部门员工姓名
    emp10_name = foreach emp10 generate ename;
    dump emp10_name
5、按照部门号对emp进行分组
    emp_by_deptno = group emp by deptno;
    dump emp_by_deptno
    
6、求每个部门最高工资
    max_sal_by_deptno = FOREACH emp_by_deptno GENERATE group,MAX(emp.sal);
    describe max_sal_by_deptno
    

你可能感兴趣的:(51cto赵强HADOOP学习(十八)pig学习)