[Hive_11] Hive 的高级聚合函数
0. 说明
Hive 的高级聚合函数 union all | grouping sets | cube | rollup
pv //page view 页面访问量
uv //user view 访问人数
1. union all
表联合操作
1.0 准备数据
pv.txt
2015-03 2015-03-10 cookie1
2015-03 2015-03-10 cookie5
2015-03 2015-03-12 cookie7
2015-04 2015-04-12 cookie3
2015-04 2015-04-13 cookie2
2015-04 2015-04-13 cookie4
2015-04 2015-04-16 cookie4
2015-03 2015-03-10 cookie2
2015-03 2015-03-10 cookie3
2015-04 2015-04-12 cookie5
2015-04 2015-04-13 cookie6
2015-04 2015-04-15 cookie3
2015-04 2015-04-15 cookie2
2015-04 2015-04-16 cookie1
2015-02 2015-02-16 cookie2
2015-02 2015-02-16 cookie3
1.1 建表
create table uv(month string,day string, id string) row format delimited fields terminated by '\t';
1.2 加载数据
load data local inpath '/home/centos/files/pv.txt' into table uv;
1.3 设置本地模式
SET hive.exec.mode.local.auto=true;
1.4 统计每月用户访问量
select month ,count(distinct id) from uv group by month;
1.5 统计每天用户访问量
select day ,count(distinct id) from uv group by day;
1.6 联合查询每月每天用户访问量
select month ,count(distinct id) from uv group by month union all select day ,count(distinct id) from uv group by day;

1.7 使用分组集(grouping sets)实现查询
select month, day,count(distinct id), grouping__id from uv group by month,day grouping sets(month,day);
grouping__id //分组的组号

month
day
1.8 使用 cube 进行查询
select month, day,count(distinct id), grouping__id from uv group by month,day with cube order by grouping__id;

null
year
month
day
year,month
year,day
month,day
year,momth,day
1.9 使用 rollup 进行查询
select month, day,count(distinct id), grouping__id from uv group by month,day with rollup order by grouping__id;

null
year
year month
year month day
[Hive_11] Hive 的高级聚合函数的更多相关文章
- Hive高阶聚合函数 GROUPING SETS、Cube、Rollup
-- GROUPING SETS作为GROUP BY的子句,允许开发人员在GROUP BY语句后面指定多个统计选项,可以简单理解为多条group by语句通过union all把查询结果聚合起来结合起 ...
- hive group by聚合函数增强
1.grouping sets grouping sets子句都可以根据UNION连接的多个GROUP BY查询进行逻辑表示 SELECT a,b,SUM(c)FROM tab1 GROUP BY a ...
- 高级聚合函数rollup(),cube(),grouping sets()
rollup(),cube(),grouping sets() 上面这几个函数,是对group by分组功能做的功能扩展. a.rollup() 功能:在原结果基础上追加一行总合计记录 ...
- 在MongoDB中实现聚合函数 (转)
随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据.传统方法存储和处理数据的成本将会随着数据量增长而显著增加.这使得很多组织都在寻找一种经济的 ...
- 在MongoDB中实现聚合函数
在MongoDB中实现聚合函数 随着组织产生的数据爆炸性增长,从GB到TB,从TB到PB,传统的数据库已经无法通过垂直扩展来管理如此之大数据.传统方法存储和处理数据的成本将会随着数据量增长而显著增加. ...
- 9.hive聚合函数,高级聚合,采样数据
本文主要使用实例对Hive内建的一些聚合函数.分析函数以及采样函数进行比较详细的讲解. 一.基本聚合函数 数据聚合是按照特定条件将数据整合并表达出来,以总结出更多的组信息.Hive包含内建的一些基本聚 ...
- Hive学习之自己定义聚合函数
Hive支持用户自己定义聚合函数(UDAF),这样的类型的函数提供了更加强大的数据处理功能. Hive支持两种类型的UDAF:简单型和通用型.正如名称所暗示的,简单型UDAF的实现很easy,但因为使 ...
- hive学习笔记之十:用户自定义聚合函数(UDAF)
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<hive学习笔记>的第十 ...
- Spark SQL 用户自定义函数UDF、用户自定义聚合函数UDAF 教程(Java踩坑教学版)
在Spark中,也支持Hive中的自定义函数.自定义函数大致可以分为三种: UDF(User-Defined-Function),即最基本的自定义函数,类似to_char,to_date等 UDAF( ...
随机推荐
- 响应者链UIResponder-扩大UIButton的点击范围
在开发中,我们经常看到有按钮等的点击,会出现响应事件.按钮->view->ViewController->UIWindow->UIApplication,这就形成了一个响应链. ...
- [转]认识JWT
本文转自:https://www.cnblogs.com/cjsblog/p/9277677.html 1. JSON Web Token是什么 JSON Web Token (JWT)是一个开放标准 ...
- 第一册:lesson twenty-one.
原文:Which book? A:Give me a book please,B. B:Which book? This one? A:No,not that one. The red one. B: ...
- SET XACT_ABORT ON是什么?
避免自己遗忘,在这里做个笔记: SET XACT_ABORT ON:强制事务回滚,如果不加这句的话事务有可能回滚失败.
- MVC Post 提交表单 允许他提交参数包含html标记的解决方法
MVC Post 提交表单的时候,如果参数中包含html标记,则需要在控制器上方加上 [ValidateInput(false)]标记后就可以正常提交表单了例如: [HttpPost] [Valida ...
- [android] 在不同的activity之间传递数据
新建一个activity,继承Activity 清单文件中进行配置,添加<activity/>节点 设置名称 android:name=”.类名” 点 代表的是当前包名,也可以不写 新建一 ...
- [android] 内容观察者
拦截短信,比如当发短信的时候,就把短信读取出来,当系统的短信发生变化的时候,大叫一声,把数据发送到公共的消息邮箱里面,我们的应用通过内容观察者观察公共的消息邮箱 获取ContentResolver对象 ...
- git merge 和 git merge --no-ff的区别
git merge –no-ff 可以保存你之前的分支历史.能够更好的查看 merge历史,以及branch 状态. git merge 则不会显示 feature,只保留单条分支记录. 比如:我当前 ...
- Field 'id' doesn't have a default value错误解决方法
Field 'id' doesn't have a default value 错误提示. 主键类型获取方式为"native"由数据库生成指定. 检查发现数据库中已存在Employ ...
- 内省(Introspector)
/** * 内省:通过反射来操作javabean * 内省类 --> Bean信息 --> 属性描述符 --> 属性的get/set对应的Method --> 进行反射 * c ...