*本文参考了Pig官方文档以及已有的一些博客,并加上了自己的一些知识性的理解。目前正在持续更新中。*
Pig作为一种处理大规模数据的高级查询语言,底层是转换成MapReduce实现的,可以作为MapReduce的一种脚本语言,大大简化了对数据操作的代码。
**
基本概念和用法
**:
1. 关系(relation):即包(bag),是一个元组(tuple)的集合。
可将关系/包想象成Spark中RDD的概念。
元组()同Spark中元组的概念。
2. 简单的文件载入操作:
A = LOAD 'a.txt' AS (col1:chararray, col2:int);
B = GROUP A BY (col1);
DUMP A;
DUMP B;
上段代码将a.txt中的内容加载到变量A中,A的数据结构为A:{col1: chararray,col2:int},A就是一个包。
注意:
1)这里面=左右两边要有空格,否则报错。
2)load as,dump等不区分大小写。
3)load as后面括号里col1和col2都是别名,如果不指定别名,后面的代码可以使用 0, 1…处理,此处使用别名是为了增强可读性。
3. 包中数据处理操作:
C=FOREACH B GENERATE group, AVG(A.col2);
遍历B中元素产生group,col2平均值
关系操作
LOAD
将数据从文件系统中载入。