数据处理框架:Pig

Pig

  1. pig 是基于hadoop的一个数据处理框架.
  2. MapReduce是使用java开发的。Pig有一套自己的数据处理语言。Pig的数据处理过程要转化为MR 来运行。
  3. Pig的数据处理语言是数据流方式,类似于初中的数学题,需要一步一步解,最终得到结果。
  4. Pig基本数据类型:int、long、float、double、chararray、bytearray
    复合数据类型:Map、Tuple(类似于数组)、Bag(类似数据字典)
    Bag的数据类型如:{(‘age’,31),(‘name’,’张三’)}

如何安装pig:

1.把pig-0.11.1.tar.gz复制到/usr/local下
2.使用命令tar -zxvf pig-0.11.1.tar.gz解压缩
3.使用命令mv pig-0.11.1 pig 进行重命名
4. 编辑文件vi /etc/profile 设置环境变量

 export $PIG_HOME=/usr/local/bin
 export PATH =......$PIG_HOME/bin....

保存,然后执行source /etc/profile
5. 编辑文件$PIG_HOME/conf/pig.properties,增加两行如下内容

fs.default.name=hdfs://hadoop:9000
mapred.job.tracker=hadoop:9001

pig是基于hadoop框架的数据处理框架,所以需要跟hadoop 关联起来,上边的配置主要针对的是Namenode 和 JobTracker

如何使用pig:

对wlan数据如何使用pig进行分析处理
1. 把待处理的数据上传到HDFS中
2. 把HDFS中的数据转换为pig可以处理的模式
按照以下图里的格式进行转化:
这里写图片描述

A = LOAD ‘/wlan’ AS (t0:long, msisdn:chararray, t2:chararray, t3:chararray, t4:chararray, t5:chararray, t6:long, t7:long, t8:long, t9:long, t10:chararray);
A是别名 ,方便引用。

如何查看是否加载进去?
DUMP A ;
3.把里面的有用的字段抽取出来
B = FOREACH A GENERATE msisdn, t6, t7, t8, t9;

Pig是一步一步来的,如果业务比较复杂,通过sql无法一步解决,用pig非常方便。

DUMP B;
这里写图片描述
4.分组数据
C = GROUP B BY msisdn;
因为有的手机号有重复,所以我们根据手机号进行分组。

DUMP C;

这里写图片描述
5.流量汇总
D = FOREACH C GENERATE group, SUM(B.t6), SUM(B.t7), SUM(B.t8), SUM(B.t9);

分组之后的名字,当我们就叫group.

DUMP D;
这里写图片描述
6.结果在pig中, 存储到HDFS中
STORE D INTO ‘/wlan_result’;
这里写图片描述
7.进入hdfs进行查看,是否保存到这里。
这里写图片描述

其中有一个文件是不为空,查看该文件是否是我们刚才在pig 里的处理结果。
这里写图片描述

我们还可以使用pig对处理结果进行排序
E = ORDER D BY group ;
DUMP E ;
Pig 还有很多用法,具体可以参看官方文档。

原文地址:https://www.cnblogs.com/bigdata1024/p/8387445.html