四十一、centos安装pig(Pig的应用)

259 阅读2分钟

环境搭建:

一、pig的安装:

        1、官网地址pig-0.17.0

Welcome to Apache Pig!https://pig.apache.org/        2、解压:

tar -zxvf pig-0.17.0.tar.gz -C /home

         3、重命名:

 mv pig-0.17.0 pig

        4、编辑环境变量:

vim /etc/profile

        5、使环境变量立即生效:

source /etc/profile

        6、启动测试:

                a、进入本地模式:

pig -x local

 

                 b、进入MapReduce模式:

pig -x mapreduce

Pig安装完成


二、Pig的应用:

A、计算多维度组合下的平均值

        1、创建测试数据文件:

vim data1.txt

a       1       2       3       4.2     9.8
a       3       0       5       3.5     2.1
b       7       9       9
a       7       9       9       2.6     6.2
a       1       2       5       7.7     5.9
a       1       2       3       1.4     0.2

        注:此处内容使用Tab键分割 

        2、进入本地调试模式:

pig -x local

        3、使用pig计算data1.txt第2.3.4列的所有组合中,最后两列的平均值分别为多少:

A = LOAD 'data1.txt' AS (col1:chararray,col2:int,col3:int,col4:int,col5:double,col6:double);
B = GROUP A BY(col2,col3,col4);
c = FOREACH B GENERATE group,AVG(A.col5),AVG(A.col6);
DUMP c;

 

        Pig输出结果如下:

         注:语句需要一行一行输入执行,可以看到Pig输出结果完全正确

B、统计数据行数

        1、统计A中含col2字段的数据有多少行:

A = LOAD 'data1.txt' AS (col1:chararray,col2:int,col3:int,col4:int,col5:double,col6:double);
B = GROUP A ALL;
C = FOREACH B GENERATE COUNT(A.col2);
DUMP C;

 

          2、查看结果:

 

        注:这和SQL的Count统计数据行数一样,可以看到结果为  6

C、Pig中使用Shell进行辅助数据处理

        1、创建测试数据data2.txt

vim data2.txt

 

1       5       98      =       7
34      8       6       3       2
62      0       6       =       65

        2、将数据中第四列的 “=” 全部替换为9999:

A = LOAD 'data2.txt' AS (col1:int,col2:int,col3:int,col4:chararray,col5:int);
B = STREAM A THROUGH 'awk'{if($4 == "=") print $1"\t"$2"\t"$3"\t9999\t"$5; else print $0}'`;
DUMP B;

          3、查看结果:

 

D、向Pig脚本中传入参数

        假设Pig脚本输出的文件是通过外部参数指定的,则此函数不能写死,需要传入

1、在Pig中,传入参数的语句如下:

STORE A INTO '$output_dir';

        其中,output_dir就是传入的参数。在调用Pig的Shell脚本时,可以使用以下语句传入参数

pig -param output_dir="/home/my_output_dir/" my_pig_script.pig

        这里传入的参数output_dir的值为“ /home/my_output_dir/  ”

centos安装pig(Pig的应用)完成