Pig简单入门

pig是hadoop客户端,使用类似于SQL的面向数据流的语言pig latin,这个语言可以完成排序,过滤,求和,关联等操作,可以支持自定义函数。Pig自动把pig latin 映射为Map-Reduce作业上传到集群运行,减少用户编写java程序的苦恼。

Pig是专门用于处理来自于HDFS的数据的。

Pig提供了一套流式的数据处理语言,转换为MapReduce,来处理HDFS中的数据。

*HBase是用来存储和查询数据

1、如何使用?

直接解压缩,执行bin/pig,就进入到grunt命令行

2、基础命令

2.1、load 加载HDFS进入Pig

a = load '/user.data'; 
#默认加载的是用制表符分隔的数据
# 访问列的时候,用$加上索引访问
dump a;

b=load '/user.data2' using PigStorage(';');
#加载文件时指定分隔符
dump b;

c = load '/user.data' using HBaseStorage;
#可以加载HBase中的数据
dump c;

d = load '/user.data' as (id,name);
#指定字段名
dump d;

e = load '/user.data' as (id:int,name:bytearray);
#指定字段名和类型
dump e;

 

2.2、store...into...写入到HDFS中

store d into '/user.data3';
fs -text 'user.data3';

 

2.3、describe 显示关系结构

2.4、foreach...generate... 迭代每一行记录

f = foreach e generate id,name;
dump f; 

g = foreach a generate $0;
dump g;
#或者
g = foreach a generate $0 as id;
dump g;

 

2.6、filter...by... 过滤

h = filter f by id<2;
dump h;

 

2.7、group... by...分组

group h by uid;

 

2.8、order...by...

i = order h by uid desc;

 

2.9、distinct 去重

distinct h;

 

2.10、limit 限制记录数

l = limit h 50;

 

2.11、sample 取样

sample h 0.1;
#抽取整体的10%的样本

 

2.12、join 合并

join user by id, role by uid;

 

2.13、parallel 并行

 

3、自定义函数

3.1、自定义过滤函数

继承自FilterFunc

 

3.2、自定义输入,输出函数

 

posted @ 2016-02-26 23:48  无头咸鱼  阅读(682)  评论(0编辑  收藏  举报