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

举报
托马斯-酷涛 发表于 2022/05/26 01:52:28 2022/05/26
【摘要】 环境搭建: 一、pig的安装:         1、官网地址pig-0.17.0 Welcome to Apache Pig!https://pig.apache.org/        2、解压: t...

环境搭建:

一、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
 


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

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

        2、进入本地调试模式:

pig -x local
 

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


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

 

        Pig输出结果如下:

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

B、统计数据行数

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


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

 

          2、查看结果:

 

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

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

        1、创建测试数据data2.txt

vim data2.txt
 

 


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

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


  
  1. A = LOAD 'data2.txt' AS (col1:int,col2:int,col3:int,col4:chararray,col5:int);
  2. B = STREAM A THROUGH 'awk'{if($4 == "=") print $1"\t"$2"\t"$3"\t9999\t"$5; else print $0}'`;
  3. 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的应用)完成


文章来源: tuomasi.blog.csdn.net,作者:托马斯-酷涛,版权归原作者所有,如需转载,请联系作者。

原文链接:tuomasi.blog.csdn.net/article/details/121156854

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。