精华内容
下载资源
问答
  • Pig

    2016-05-05 14:04:22
  • pig

    2020-12-21 15:56:43
    1、定义 1.pig是在HDFS和MapReduce之上的数据流处理语言(一种操作hadoop的轻量级脚本语言,编程语言), 它将数据流处理翻译成多个MapReduce函数,提供更高层次的...类似我们通常熟悉的SQL语句,在Pig中称之为Pig L

    1、定义

    1.pig是在HDFS和MapReduce之上的数据流处理语言(一种操作hadoop的轻量级脚本语言,编程语言),
    它将数据流处理翻译成多个MapReduce函数,提供更高层次的抽象将程序员从具体的编程中解放出来。
    
    2.Pig内置的操作使得半结构化数据变得有意义(如日志文件)。
    同时Pig可扩展使用Java中添加的自定义数据类型并支持数据转换。
    也就是说,Pig最大的作用就是对mapreduce算法(框架)实现了一套shell脚本 ,
    类似我们通常熟悉的SQL语句,在Pig中称之为Pig Latin,
    在这套脚本中我们可以对加载出来的数据进行排序、过滤、求和、分组(group by)、关联(Joining),
    Pig也可以由用户自定义一些函数对数据集进行操作,也就是传说中的UDF(user-defined functions)。
    
    3.结论性的阅读感觉是:Pig用来写一些即时脚本吧,比如领导问你要份数据,半个小时要出来之类;
    Hive嘛,就是一个产品经理过来,问这个啥回事?于是你Hive一下,一个简洁的类SQL语句...Done!
    
    4.Pig包含两个部分:Pig Interface,Pig Latin。
    Pig可以非常方便的处理HDFS和HBase的数据,和Hive一样,Pig可以非常高效的处理其需要做的,
    通过直接操作Pig查询可以节省大量的劳动和时间。当你想在你的数据上做一些转换,
    并且不想编写MapReduce jobs就可以用Pig.
    
    5.Pig适合有SQL背景的学习,有以下两个特点:
    放宽了对数据存储的要求
    能够轻松操作大型数据集

    2、不推荐理由:

    最初又雅虎公司推出,不过现在正在走下坡路了。
    当初雅虎自己慢慢退出pig的维护之后将它开源贡献到开源社区由所有爱好者来维护。
    不过现在还是有些公司在用,不过我认为与其使用pig不如使用hive。

    3、pig和hive的区别

    4、hive与pig的重要区别

    1.hive 是一个类似sql语法的数据语言,
    pig是一个高级抽像的数据流语言,编程语言,简化hadoop常见的工作任务。
    2.hive可以做为数据仓库,可以把数据按照hive的压缩格式放到指定目录从而对数据分析,
    3.pig只是抽像了数据存储的模型,到分析时按数据模析去分析。
    4.hive中可以执行插入、删除等,但Pig我没有发现可以插入数据的方法。
    5.hive有schemas和分区的概念,pig就只知道要加载数据的分隔格式
    6.pig 无jdbc,hive有的。
    7.hive给数据库管理员用,pig给运维人员用。

    5、pig语法

    #1.从文件导入数据
    #          1)Mysql (Mysql需要先创建表).
                 CREATE TABLE TMP_TABLE(USER VARCHAR(32),AGE INT,IS_MALE BOOLEAN);
                 CREATE TABLE TMP_TABLE_2(AGE INT,OPTIONS VARCHAR(50));   -- 用于Join
                 LOAD DATA LOCAL INFILE '/tmp/data_file_1'  INTO TABLE TMP_TABLE ;
                 LOAD DATA LOCAL INFILE '/tmp/data_file_2'  INTO TABLE TMP_TABLE_2;
    #          2)Pig
                  tmp_table = LOAD '/tmp/data_file_1' USING PigStorage('\t') AS (user:chararray, age:int,is_male:int);
                  tmp_table_2= LOAD '/tmp/data_file_2' USING PigStorage('\t') AS (age:int,options:chararray);
     
    # 2.查询整张表
             1)Mysql
                SELECT * FROM TMP_TABLE;
             2)Pig
                DUMP tmp_table;
    # 3. 查询前50行
    #        1)Mysql
                SELECT * FROM TMP_TABLE LIMIT 50;
    #R        2)Pig
                 tmp_table_limit = LIMIT tmp_table 50;
                 DUMP tmp_table_limit; 
    #4.查询某些列
    #        1)Mysql
                SELECT USER FROM TMP_TABLE;
    #        2)Pig
                tmp_table_user = FOREACH tmp_table GENERATE user;
                DUMP tmp_table_user;
     
    #5. 给列取别名
    #       1)Mysql
               SELECT USER AS USER_NAME,AGE AS USER_AGE FROM TMP_TABLE;
    #        2)Pig
               tmp_table_column_alias = FOREACH tmp_table GENERATE user AS user_name,age AS user_age;
               DUMP tmp_table_column_alias; 
     
    #6.排序
    #       1)Mysql
               SELECT * FROM TMP_TABLE ORDER BY AGE;
    #       2)Pig
                tmp_table_order = ORDER tmp_table BY age ASC;
                DUMP tmp_table_order;
     
    # 7.条件查询
    #        1)Mysql
                SELECT * FROM TMP_TABLE WHERE AGE>20;
    #        2) Pig
                tmp_table_where = FILTER tmp_table by age > 20;
                DUMP tmp_table_where;
     
    # 8.内连接Inner Join
    #        1)Mysql
               SELECT * FROM TMP_TABLE A JOIN TMP_TABLE_2 B ON A.AGE=B.AGE;
    #        2)Pig
                tmp_table_inner_join = JOIN tmp_table BY age,tmp_table_2 BY age;
                DUMP tmp_table_inner_join;
    
    
    # 9.左连接Left  Join
    #       1)Mysql
               SELECT * FROM TMP_TABLE A LEFT JOIN TMP_TABLE_2 B ON A.AGE=B.AGE;
    #       2)Pig
              tmp_table_left_join = JOIN tmp_table BY age LEFT OUTER,tmp_table_2 BY age;
              DUMP tmp_table_left_join;
    
    
    # 10.右连接Right Join
    #         1)Mysql
                SELECT * FROM TMP_TABLE A RIGHT JOIN TMP_TABLE_2 B ON A.AGE=B.AGE;
    #         2)Pig
                tmp_table_right_join = JOIN tmp_table BY age RIGHT OUTER,tmp_table_2 BY age;
                DUMP tmp_table_right_join;
     
    # 11.全连接Full Join
    #         1)Mysql
                SELECT * FROM TMP_TABLE A  JOIN TMP_TABLE_2 B ON A.AGE=B.AGE
                    UNION SELECT * FROM TMP_TABLE A LEFT JOIN TMP_TABLE_2 B ON A.AGE=B.AGE
                    UNION SELECT * FROM TMP_TABLE A RIGHT JOIN TMP_TABLE_2 B ON A.AGE=B.AGE;
    #         2)Pig
                tmp_table_full_join = JOIN tmp_table BY age FULL OUTER,tmp_table_2 BY age;
                DUMP tmp_table_full_join;
     
    # 12.同时对多张表交叉查询
    #          1)Mysql
                 SELECT * FROM TMP_TABLE,TMP_TABLE_2;
    #          2)Pig
                 tmp_table_cross = CROSS tmp_table,tmp_table_2;
                 DUMP tmp_table_cross;
     
    # 13.分组GROUP BY
    #         1)Mysql
                SELECT * FROM TMP_TABLE GROUP BY IS_MALE;
    #         2)Pig
                tmp_table_group = GROUP tmp_table BY is_male;
                DUMP tmp_table_group;
      
    # 14.分组并统计
    #           1)Mysql
                 SELECT IS_MALE,COUNT(*) FROM TMP_TABLE GROUP BY IS_MALE;
    #           2)Pig
                  tmp_table_group_count = GROUP tmp_table BY is_male;
                  tmp_table_group_count = FOREACH tmp_table_group_count GENERATE group,COUNT($1);
                  DUMP tmp_table_group_count;
    
    
    #15.查询去重DISTINCT
    #           1)MYSQL
                  SELECT DISTINCT IS_MALE FROM TMP_TABLE;
    #           2)Pig
                  tmp_table_distinct = FOREACH tmp_table GENERATE is_male;
                  tmp_table_distinct = DISTINCT tmp_table_distinct;
                  DUMP  tmp_table_distinct;

     

    展开全文
  • └── pig-upms-biz -- 通用用户权限管理系统业务处理模块[4000] └── pig-visual └── pig-monitor -- 服务监控 [5001] ├── pig-codegen -- 图形化代码生成 [5002] ├── pig-sentinel-dashboard -- ...
  • └── pig-upms-biz -- 通用用户权限管理系统业务处理模块[4000] └── pig-visual └── pig-monitor -- 服务监控 [5001] ├── pig-codegen -- 图形化代码生成 [5002] ├── pig-sentinel-dashboard -- ...
  • apache-pig-on-storm 使用Apache PigPig Latin生成并运行Apache Storm拓扑
  • Pig support

    2020-12-08 18:52:25
    <div><p>Riding a pig should work but it currently doesn't <p>Baritone should detect you're on a pig and if so: <p>Change the way it sets yaw so it works while riding an entity (right now it ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,093
精华内容 3,637
关键字:

Pig