hive高级查询
来源:互联网 发布:淘宝陈枝记铁锅有毒 编辑:程序博客网 时间:2024/06/05 17:55
查询操作
group by、order by、join、distribute by、sort by、cluster by、union all
底层的实现
mapreduce
简单的聚合函数
count
sum
avg
distinct
order by全局排序
order by 需要reduce操作,且只有一个reduce,与配置无关
如果数据量大的话,会很浪费资源
order by过程
从表读取数据,执行where条件,以col1、col2列的值做成组合key,其他列值作为value,然后把数据传到同一个reduce,根据需要的方式进行排序
group by
select 后非聚合列必须放在group by后
使用了reduce操作,受限于reduce数量,设置reduce参数mapred.reduce.tasks
输出文件个数与reduce数相同,文件大小与reduce处理的数据量有关
优化
set hive.groupby.skewindata=true;
执行过程
读取数据,执行where条件,按col列分组,把col列的内容作为key,其他列作为value传到reduce,在reduce端执行聚合操作,和having过滤
join表连接
join等值连接
left outer join左外连接
right outer join右外连接
left semi join 类似exists
mapjoin在map端完成操作,不需要reduce,基于内存做join,属于优化操作
distribute by col按照col列把数据分散到不同的reduce
sort排序
select col1,col2 from table distribute by col1 sort by col1 desc,col2 asc
两者结合出现,确保每个reduce的输出都是有序的
distribute by与group by
都是按key划分数据
都是用reduce操作
唯一不同,distribute by只是淡村的分散数据,而group by把相同的key的数据聚集到一起,后续必须是聚合操作
order by 与sort by
order by是全局排序
sort by只是确保每个reduce上面输出的数据有序,如果只有一个reduce时,和order by同
cluseter by
把有相同值的数据聚集到一起,并排序
cluseter by col同distribute by col order by col
hive只支持union all,不支持union
多个表的数据合并成一个表
- hive高级查询
- hive学习笔记-高级查询
- 08-Hive高级查询join
- hive 高级查询常用函数关键字总结
- Hive高级查询(group by、 order by、 join等)
- 07-Hive高级查询order by、group by
- Hive高级查询(group by、 order by、 join等)
- Hive高级查询(group by、 order by、 join等)
- Hive高级查询(group by、 order by、 join等)
- Hive高级查询(group by、 order by、 join等)
- Hive查询
- Hive查询
- Hive 查询
- HIVE查询
- Hive查询
- Hive查询
- Hive高级应用
- hive 高级结构
- FragmentPagerAdapter刷新
- 一个不合格的管理者
- Django 1.9.5 创建数据库表
- 卡特兰数
- Petrozavodsk Winter-2013. Ural FU Contest
- hive高级查询
- poj 2031 Building a Space Station
- finally块中包含return语句对返回值的影响
- 自己写的LinkList
- 简单的gson对boolean转换的test(作为备注)
- 【HDU】1159 - Common Subsequence(LCS)
- git add , git commit 添加错文件 撤销
- Simple Line Editor----CSU 1019
- ios json解析3840错误