Pig设计模式概要以及与SQL的设计模式的对比
1概要模式
概要模式其实就是数据的全貌信息的获取,主要分为3种:
1.1数值概要
#HSQL
SELECT MIN(num),MAX(num),COUNT(num) FROM table GROUP BY groupcol;
#Pig
b = GROUP a BY groupcol;
c = FOREACH b GENERATE group, MIN(a.num), MAX(a.num), COUNT_STAR(a)1.2倒排索引概要
1.3计数器概要
2过滤器模式
过滤模式是不改变原有记录,而寻求子集的设计模式,主要应用于如下方面:
2.1过滤
#HSQL
SELECT * FROM table WHERE value<3;
#Pig
b = FILTER a BY value <3;2.2布隆过滤
2.3TopN模式
#HSQL
SELECT * FROM table ORDER BY col DESC LIMIT 10;
#Pig
b = ORDER a BY col DESC;
c = LIMIT b 10;2.4去重
#HSQL
SELECT DISTINCT * FROM table;
#Pig
b = DISTINCT a;3数据组织模式
数据组织模式是将一组数据进行重组,重点在于将个别记录的价值放大到全局,主要有如下几个设计模式:
3.1分层
#HSQL
  ##在关系数据库中,很少;在RDBMS中解决类似问题方法一般是先对数据进行连接,然后在结果上分析
#Pig
  ##pig对于分层数据结构有一定支持,包括层次化的包和元组。
a = LOAD '/data/a' AS PigStorage('|');
b = LOAD '/data/b' AS PigStorage(',');
group_c = COGROUP a BY $2, b BY $1;
annalyzed = FOREACH group_c GENERATE udfs.ananlyze(group ,$1 ,$2);
...3.2分区
3.3分箱
3.4全排序
#HSQL
SELECT * FROM table ORDER BY col DESC;
#Pig
b = ORDER a BY col DESC;3.5混排
#HSQL
SELECT * FROM table ORDER BY RAND();
#Pig
b = GROUP a BY RANDOM(); #随机
c = FOREACH b GENERATE FLATTEN(a);#分组打平4连接模式
连接模式是对于多处数据进行组织的一种方法,主要有以下几种:
4.1终端连接
#HSQL
SELECT column_name
FROM table_name1
LEFT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
#Pig
C = JOIN A BY a1 LEFT OUTER,B BY b1; #左外,也可以:{左右全}外
C = JOIN A BY a1,B BY b1; #内4.2复制连接
#pig
#只有内连接和左外才支持这种复制链接优化模式
#除了第一个数据集以外,要求所有的数据集都要在内存中
big = LOAD 'big_data' AS (b1,b2,b3);
tiny = LOAD 'tiny_data' AS (t1,t2,t3);
mini = LOAD 'mini_data' AS (m1,m2,m3);
C = JOIN big BY b1, tiny BY t1, mini BY m1 USING 'replicated';4.3组织连接
4.4笛卡尔
#HSQL
SELECT * FROM table a ,b;
#Pig
c = CROSS a , b ;5模式的模式
5.1作业链
5.2折叠链
5.3归并链
6IO模式
转载于:https://my.oschina.net/u/3511143/blog/1808961
Pig设计模式概要以及与SQL的设计模式的对比的更多相关文章
- java设计模式系列之设计模式概要(1)
		一.什么是设计模式 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. ... 
- 初探Java设计模式4:JDK中的设计模式
		JDK中设计模式 本文主要是归纳了JDK中所包含的设计模式,包括作用和其设计类图.首先来个总结,具体的某个模式可以一个一个慢慢写,希望能对研究JDK和设计模式有所帮助.一.设计模式是什么(1)反复出现 ... 
- [Head First设计模式]饺子馆(冬至)中的设计模式——工厂模式
		系列文章 [Head First设计模式]山西面馆中的设计模式——装饰者模式 [Head First设计模式]山西面馆中的设计模式——观察者模式 [Head First设计模式]山西面馆中的设计模式— ... 
- 设计模式总结(《Head First设计模式》学习总结)
		写在前面: 学习过程中不仅要熟练掌握技能,理论的消化吸收也必不可少.虽然个人更倾向于学习技术类的东西(短时间的精力投入很快就能看到成效...),但看了很多前辈的经验总结后才知道理论性的东西是绝对不能忽 ... 
- php设计模式课程---1、什么是设计模式
		php设计模式课程---1.什么是设计模式 一.总结 一句话总结:经典场景的经典解决方法. 经典场景的经典解决方法 1.设计模式使用的通俗场景有哪些? 比如:拍电影时,常用设计模式 感情狗血剧:误会模 ... 
- Java面试 - 什么是单例设计模式,为什么要使用单例设计模式,如何实现单例设计模式(饿汉式和懒汉式)?
		什么是单例设计模式? 单例设计模式就是一种控制实例化对象个数的设计模式. 为什么要使用单例设计模式? 使用单例设计模式可以节省内存空间,提高性能.因为很多情况下,有些类是不需要重复产生对象的. 如果重 ... 
- LINQ to SQL和Entity Framework对比与关联 (转载)
		LINQ to SQL和Entity Framework对比与关联 LINQ to SQL和Entity Framework都是一种包含LINQ功能的对象关系映射技术.他们之间的本质区别在 ... 
- 设计模式概要 & 六原则一法则
		参考文章 http://blog.csdn.net/sinat_26342009/article/details/46419873 继承vs组合:http://www.cnblogs.com/feic ... 
- PHP常用设计模式,PHP常用设计模式详解,PHP详解设计模式,PHP设计模式
		PHP常用设计模式详解 单例模式: php交流群:159789818 特性:单例类只能有一个实例 类内__construct构造函数私有化,防止new实例 类内__clone私有化,防止复制对象 设置 ... 
随机推荐
- SpringCloud(二)之我学 Ribbon
			1.负载均衡 Ribbon 虽然不是显示的配置为一个子项目,但是无论是在 API 网关的转发请求,还是服务之间的调用 Feign ,都是通过 Ribbon 来做负载均衡的. 负载均衡,主要是为了对系统 ... 
- 用curl调用https接口
			今天在windows下用curl类获取微信token一直返回false,查阅资料后,发现是https证书的锅,在curl类中加上这两条,问题瞬间解决. curl_setopt($ch, CURLOPT ... 
- Python常见数据结构-List列表
			Python list基本特点 列表是一种有序集合,可以随时添加和删除元素. 序列中的每个元素都分配一个数字 - 它的位置. 列表的数据项不需要具有相同的类型. 创建一个列表,只要把逗号分隔的不同的数 ... 
- floyd三重循环最外层为什么一定是K
			Floyd算法为什么把k放在最外层? - 知乎 https://www.zhihu.com/question/30955032高票答案: 简单地总结一下:K没放在最外面一定是错的,但是在某些数据比较水 ... 
- java的图形化界面   文本区JTextArea的程序例子
			package java1; //使用时这个改成你的包名即可//文本区 JTextArea import javax.swing.*;import java.awt.*;import java ... 
- 【转】Centos7启动网卡(获取ip地址)
			这里之所以是查看下IP ,是我们后面要建一个Centos远程工具Xshell 连接Centos的时候,需要IP地址,所以我们这里先 学会查看虚拟机里的Centos7的IP地址 首先我们登录操作系统 用 ... 
- Spring Data REST不完全指南(一)
			简介 Spring Data REST是Spring Data项目的一部分,可轻松在Spring Data存储库上构建超媒体驱动的REST Web服务. Spring Data REST 构建在 Sp ... 
- copy模块中的copy与deepcopy的区别
			前言 每空闲下来,就觉得以前写的博客很low........也许现在也很low~~~~好吧就当升级版的low吧~~~~ 如果要了解copy与deepcopy的区别,就需要了解Python的存储机制:P ... 
- Docker-None & Host 网络
			本节介绍None&Host网络. 1.前言 点击此处回到docker系列文章目录 前面我们介绍了bridge network,本小节继续介绍none和host.这两个比较简单,也不太常用.安装 ... 
- 引用传参与reference_wrapper
			本文是<functional>系列的第3篇. 引用传参 我有一个函数: void modify(int& i) { ++i; } 因为参数类型是int&,所以函数能够修改传 ... 
 
			
		