-
Pig
2016-05-05 14:04:22 -
pig
2020-12-21 15:56:431、定义 1.pig是在HDFS和MapReduce之上的数据流处理语言(一种操作hadoop的轻量级脚本语言,编程语言), 它将数据流处理翻译成多个MapReduce函数,提供更高层次的...类似我们通常熟悉的SQL语句,在Pig中称之为Pig L1、定义
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 Error: Pig 0.11.2/Hadoop 0.21.0
2020-12-09 05:00:25<div><p>pig -l /tmp -x local -v -w sent_counts.pig 2014-08-13 22:26:16,744 [main] INFO org.apache.pig.Main - Apache Pig version 0.11.2-SNAPSHOT (rUnversioned directory) compiled Aug 13 2014, 21:53:01... -
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 ... -
大数据pig实战
2018-01-14 20:43:55大数据pig实战,大数据pig实战,大数据pig实战大数据pig实战大数据pig实战 -
Pig UDFs
2020-12-08 21:07:32ve been working on using the Esri/geometry-api-java to be a <a href="https://github.com/mrflip/datafu/tree/esri_fiddle/datafu-pig/src/main/java/datafu/pig/geo">spatial framework for Pig</a> -- have ...
收藏数
8,239
精华内容
3,295
-
智者卓越5.7.rar
-
毕业设计:动漫门户网站的设计与实现(论文+开题报告+毕业答辩ppt+源代码)
-
2010-2020年暨南大学801美学评论与写作考研真题
-
2021最新Kubernetes(k8s)集群实战精讲
-
1437. Check If All 1‘s Are at Least Length K Places Away
-
Ninject依赖项注入容器
-
MATLAB零相位数字滤波 filtfilt
-
DEELX_让^匹配字符串开始、和换行符.rar
-
是的
-
我基本上不太会考虑美国的博士
-
MATLAB视频去雾[GUI,源码,论文].zip
-
CodeForces - 1463D. Pairs (二分)
-
软件测试基础
-
Python Cannot open E:\Python36\Scripts\pip-script.py
-
一种弯曲主导型热膨胀点阵超材料的带隙特性研究
-
Deeplearning深度学习笔记v5.71.pdf
-
vue通讯e
-
JSONView-for-Chrome-master.pem
-
反微机教室远程控制插件【电子教室远程杀手】
-
72. 编辑距离