PIG入门

1 篇文章 0 订阅

PIG入门

★ PIG简介

1:Pig是基于Hadoop的一个数据处理框架。

   MapReduce是使用Java进行开发,Pig有一套自己的数据处理语言,Pig的数据处理过程要转化为MR来运行。

2:Pig的数据处理语言是数据流方式的。何为数据流?

3:Pig的基本数据类型:int、long、float、double、chararry、bytearray

  Pig的复杂数据类型:Map 、Tuple、Bag

Bag的类型如下:

{('age',31),('name','lili')}

 

★ PIG数据类型

以下图片摘自官网。

简单类型有:int   long   float double  chararray   bytearray  boolean   datetime

复杂类型有:tuple   bag   map

上图有相应数据类型的示例。

 

 

★ Pig的安装

上传安装包,解压、重命名省略

 

1:编辑文件vi /etc/profile 设置环境变量

 

export $PIG_HOME=/usr/local/pig

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

 

保存,然后执行source  /etc/profile

2:编辑文件$PIG_HOME/conf/pig.properties,增加两行如下内容

 

fs.default.name=hdfs://hadoop5:9000

mapred.job.tracker=hadoop5:9001

 

★ Pig命令行示例

进入命令行方式,进入$PIG_HOME/bin目录下

执行命令:pig   进入如下命令行提示信息。

 

▲ 1:准备数据

表数据

table1.txt

=====================================

zhangsan        23     1

lisilisi        24     1

wangmazi        30     1

meinv  18      0

dama   55      0

 

table2.txt

=====================================

1      a

23     bb

50     ccc

30     dddd

66     eeeee

▲ 2:从文件导入数据

 

table1 = LOAD '/table1.txt' USINGPigStorage('\t') AS (user:chararray, age:int,is_male:int);

table2 = LOAD '/table2.txt' USINGPigStorage('\t') AS (age:int,options:chararray);

▲ 3:查询整张表

DUMP table1;

DUMP table2;

 

▲ 4:查询前2行

limit_table1 = LIMIT table1 2;

DUMP limit_table1;

 

▲ 5:查询某些列

column_table1 = FOREACH table1 GENERATEuser;

DUMP column_table1;

 

▲ 6:给列取别名

alias_table1 = FOREACH table1 GENERATE userAS user_name,age AS user_age;

DUMP alias_table1;

 

▲ 7:排序

order_table1 = ORDER table1 BY age ASC;

DUMP order_table1;

 

▲ 8:条件查询

condition_table1 = FILTER table1 by age> 20;

DUMP condition_table1;

 

▲ 9:内连接Inner Join

inner_join_table = JOIN table1 BYage,table2 BY age;

DUMP inner_join_table;

 

▲ 10:左连接Left  Join

left_join_table = JOIN table1 BY age LEFTOUTER,table2 BY age;

DUMP left_join_table;

 

▲ 11.右连接Right Join

right_join_table = JOIN table1 BY age RIGHTOUTER,table2 BY age;

DUMP right_join_table;

 

▲ 12.全连接Full Join

full_join_table = JOIN table1 BY age FULLOUTER,table2 BY age;

DUMP full_join_table;

 

▲ 13.同时对多张表交叉查询

cross_table = CROSS table1,table2;

DUMP cross_table;

 

▲ 14.分组GROUP BY

group_table = GROUP table1 BY is_male;

DUMP group_table;

 

▲ 15.分组并统计

group_count_group_table = GROUP table1 BYis_male;

group_count_group_table = FOREACHgroup_count_group_table GENERATE group,COUNT($1);

DUMP group_count_group_table;

 

▲ 16.查询去重DISTINCT

distinct_table = FOREACH table1 GENERATEis_male;

distinct_table = DISTINCT distinct_table;

DUMP distinct_table;

▲ 17 保存数据到HDFS

待补充

 

★ 案例1:用PIG LATIN 处理电信上网例子

以下是数据格式:

以下是各个字段的意思。

 

步骤:

1:把待处理的数据上传到HDFS中/wlan

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);

3:把里面的有用的字段抽取出来

    B= FOREACH A GENERATE msisdn, t6, t7, t8, t9; 

4:分组数据

    C= GROUP B BY msisdn;         

5:流量汇总

    D= FOREACH C GENERATE    group, SUM(B.t6),SUM(B.t7), SUM(B.t8), SUM(B.t9);

6:存储到HDFS中

   STORE D INTO '/wlan_result';

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

★ 案例2:用PIG LATIN 处理学生选课信息

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop是一个开源的分布式计算框架,用于处理大规模数据的存储和分析。如果你想从入门到精通Hadoop,我可以给你一些学习路径和资源推荐。 1. 入门阶段: - 了解Hadoop的基本概念和架构,包括HDFS(分布式文件系统)和MapReduce(分布式计算模型)。 - 学习如何在单节点或伪分布式环境中安装和配置Hadoop。 - 掌握Hadoop的基本命令和操作,包括文件操作、作业提交等。 2. 深入学习阶段: - 学习Hadoop生态系统中其他相关工具和组件,如Hive(数据仓库)、Pig(数据分析语言)、HBase(NoSQL数据库)等。 - 掌握Hadoop集群的配置和部署,学习如何进行容错和故障恢复。 - 理解Hadoop的调优技巧和性能优化策略,包括数据本地性、并行度控制、任务调度等方面。 3. 实践应用阶段: - 在实际项目中应用Hadoop进行数据处理和分析,如大规模数据的清洗、转换、聚合等。 - 学习如何编写自定义的MapReduce作业,处理复杂的数据处理需求。 - 探索Hadoop的扩展能力,如与Spark、Flink等实时计算框架的结合使用。 对于学习资源,可以参考以下内容: - 官方文档:Apache官方网站提供了详细的文档和教程,适合作为入门参考。 - 书籍:《Hadoop权威指南》、《Hadoop实战》等经典书籍是学习Hadoop的好选择。 - 在线课程:Coursera、Udacity等平台提供了许多与Hadoop相关的在线课程,如《Introduction to Big Data with Apache Hadoop》等。 记住,学习Hadoop需要一定的时间和实践经验,不断进行实际项目的实践和探索是提高技能的关键。祝你学习顺利!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值