美文网首页大数据
Pig从入门到精通1:Pig简介

Pig从入门到精通1:Pig简介

作者: 金字塔下的小蜗牛 | 来源:发表于2020-04-04 23:41 被阅读0次

1.什么是Pig

Pig是一个用来处理大规模数据集的平台,最早是Yahoo!公司的项目,后来共享给了Apache公司。Pig可以看做是Hadoop的客户端,可以连接到Hadoop集群进行数据分析工作,使用Pig可以简化MapReduce任务的开发过程。

Pig使用PigLatin语言进行数据处理,PigLatin是一种类似于SQL的面向数据流的语言,使用起来非常方便,对于不熟悉Java的用户简直是一种福音。使用PigLatin语言可以对数据进行排序、过滤、求和、分组、关联等常用操作,也可以自定义函数,除此之外PigLatin还是一种轻量级的脚步语言。

Pig可以看做是PigLatin语言到MapReduce任务的映射器。Pig可以自动对集群资源进行分配和回收,并且自动对MapReduce任务进行优化。

2.Pig和Hive的对比

(1)相同点

  1. Pig 和 Hive 都是Hadoop生态下的数据分析引擎
  2. Pig 和 Hive 都是只有计算、没有存储,计算使用MapReduce,存储使用HDFS
  3. Pig 和 Hive 都是将类SQL语言编写的程序转换成复杂的MapReduce任务来执行

(2)不同点

  1. Pig使用PigLatin语言,Hive使用Hive SQL(简称HQL)语言
  2. Pig侧重业务逻辑的实现,Hive侧重编程效率的提高:例如实现一个业务逻辑,使用Pig需要一步一步来操作,使用Hive一条HQL语句就搞定
  3. Pig可以用来在短时间内获取一个复杂的业务逻辑处理结果,Hive可以用来执行定时任务

3.Pig和MapReduce的对比

pig针对一些基本的处理逻辑已经做好了封装,直接使用对应的命令即可,但是使用mapreduce 代码的话就需要自己实现,并且使用pig还不需要考虑代码的优化。使用mapreduce的话会出现数据倾斜的问题,但是使用pig可以避免这个问题。

4.Pig的应用场景

最主要的就是数据清洗。

5.Pig的使用方式

(1)Grunt Shell

在Pig Grunt Shell下执行Pig命令。

(2)Bash Shell

在外部Bash Shell中执行Pig命令,如:

bin/pig -e "A = load 'a.txt' as (id:int,name:chararray);dump A;"

(3)Pig脚本

使用脚本来执行Pig程序,如:

vim my.pig
-- 单行注释
/*
多行注释
*/
A = load 'a.txt' as (id:int,name:chararray);
dump A;

执行命令

bin/pig my.pig

6.Pig的体系结构

Pig的体系结构如下图所示:

image

Pig的位置介于SQL和MapReduce之间,相当于为用户提供了三个层面操作数据的工具:SQL、Pig、MapReduce,其中SQL最简单。用户可以根据需要选择任何一种方式操作数据。如果用户直接使用SQL来处理数据,那么可以通过Pig自动将SQL转换为MapReduce任务并作出优化,最后提交给集群执行。

7.Pig里面的数据类型

(1)基本数据类型

  1. int:整型
  2. long:长整型
  3. float:单精度浮点型
  4. double:双精度浮点型
  5. chararray:字符串类型
  6. bytearray:字节数组类型
  7. boolean:布尔类型
  8. datetime:日期时间类型
  9. biginteger:大整数类型
  10. bigdecimal:大浮点数类型

(2)复合数据类型

  1. tuple:元组,如:(1,2,3)
  2. bag:包,如:{(1,2),(3,5),(4,7,9)}
  3. map:映射,如:[key#value]

相关文章

网友评论

    本文标题:Pig从入门到精通1:Pig简介

    本文链接:https://www.haomeiwen.com/subject/nfpkdhtx.html