一、前言
Pig 提供一个支持大规模数据分析的平台。Pig的基础结构包括一个产生一个MapReduce的程序的编辑器,语言层包括一个Pig Latin的文本语言
Pig可以看做hadoop 的客户端软件,可以连接到hadoop集群进行数据分析工作
Pig方便不熟悉java的用户,使用一种较为简便的类似SQL的面向数据流语言pig latin 进行数据处理
Pig latin 可以进行排序、过滤、求和、关联等常用的操作,还可以自定义函数,这是一种面向数据分析处理的轻量级
脚本语言
Pig 可以看做pig latin 到map-reduce 的映射器
二、Pig的安装
设置环境变量
export PIG_HOME=/<path-to-pigDir>
export PATH=$PIG_HOME/bin:$PIG_HOME/conf:$PATH
三、Pig Latin
本地启动:pig -x local
MapReduce 模式:pig -x mapreduce
Pig latin 常用语句
Load 指出载入数据的方法
Foreach 逐行扫描进行某种处理
Filter 过滤行
Dump 把结果显示到屏幕
Store 把结果保存到文件
2、Pig Latin 数据类型
Bag:表
Tuple :行,记录
Field:属性
pig不要求同一个bag里面的各个 tuple有相同数据或相同数据类型的field
eg:
-- max_temp.pig: Finds the maximum temperature by year
records = LOAD 'input/ncdc/micro-tab/sample.txt'
AS (year:chararray, temperature:int, quality:int);
filtered_records = FILTER records BY temperature != 9999 AND
(quality == 0 OR quality == 1 OR quality == 4 OR quality == 5 OR quality == 9);
grouped_records = GROUP filtered_records BY year;
max_temp = FOREACH grouped_records GENERATE group,
MAX(filtered_records.temperature);
DUMP max_temp;