美文网首页大数据
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