hive sql使用总结
lhxsir 2020-07-07 22:43:25
55 收藏
分类专栏: hive
Hive设置多个reduce方法:set mapred.reduce.tasks = 2;
(1) order by/distribute by/sort by/cluster by区别
orderby#全局排序 sortby#局部排序,单独reduce中进行排序distributeby#分桶排序,相同KEY的记录被划分到一个Reduceclusterby=distributeby+sortby#分桶排序clusterbyid,name 默认是升序,且不可指定asc或descgroupby#单纯分组,一般和AVG()/COUNT()/MAX()组合
1
2
3
4
5
6
(2)窗口函数
序号函数:row_number() / rank() / dense_rank()
分布函数:percent_rank() / cume_dist()
前后函数:lag() / lead()
头尾函数:first_val() / last_val()
其他函数:nth_value() / nfile()
SELECTid,name,RANK()OVER(PARTITIONBYidORDERBYdtdesc)ASrn1,DENSE_RANK()OVER(PARTITIONBYidORDERBYdtdesc)ASrn2,ROW_NUMBER()OVER(PARTITIONBYidORDERBYdtDESC)ASrn3FROMtable_test;