Pig是什么?其体系结构简介?
Pig的安装?
Pig数据类型,操作*
Pig处理数据***
---------------------------加深拓展----------------------
Pig的自定义函数*
------------------------------------------
什么是PIG呢?
Pig是hadoop生态圈中专门处理数据的框架,类似于Hive。
Pig提供了一套流式的数据处理语言,转换为MapReduce,处理HDFS中的数据。
PIG处理数据首先要加载 ,然后进行处理,处理完成之后再送回去。
PIG的安装。
直接解压缩,执行bin/pig,就进入到grunt命令行。
PIG的常用命令
LOAD
a = load ‘/user.data‘;dump a; //默认加载的是制表符分隔的文件
b = load ‘/user.data2‘ using PigStorage(‘;‘);dump b; //加载文件时,指定分隔符
c = load ‘/user.data‘ using HBaseStorage;//可以加载hbase数据
d = load ‘/user.data‘ as (id, name);dump d;
e = load ‘/user.data‘ as (id:int, name:bytearray);dump e;
describe e;
describe 显示关系的结构
store...into... 写入到hdfs中
store e into ‘/user.data3‘
foreach...generate... 迭代每一行记录
f = foreach a generate $0 as id, $1 as name;dump f;
g = foreach e generate id,name;dump g;
filter...by... 过滤
h = filter f by id>1;dump h;
group...by... 分组
group h by uid;
order...by... 排序
i = order h by uid desc;
distinct 去重复
i = distinct h;
limit 限制记录数
l = limit h 50;
sample取样
m = sample h 0.1;
join合并
n = join user by id, role by uid;
parallel并行
只用于reduce阶段,对map阶段无效;
触发reduce阶段的操作有:group*、order、distinct、join*、cogroup*、cross。
group h by id parallel 10;
自定义过滤函数:
继承FilterFunc
使用register注册
register jar.jar;
使用define起别名
define isValid pig.IsValid();
调用
--------------------
JAVACONDE
先得注册自定义函数
register /mnt/home/cr00/jar.jar
给函数起别名
define
传参
homework
2.给个文件进行传参
vi ref.file
ref=3
pig -m ref.file homework.pig