什么是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
网友评论