1、Hive排序方法
Hive提供了四种排序方式
ORDER BY,对结果集进行全局排序,数据规模较大时,比较耗时
ORDER BY colName(ASC]DESC)?(, colName(ASC| DESC)?)
SORT BY,指出数据在每个Reducer内如何排序的,通常与DISTRIBUTE BY—起使用
DISTRIBUTE BY,控制Map输出在Reducer中的划分
select * from table DISTRIBUTE BY col_name1 SORT BY col_name2
CLUSTER BY,相当于DISTRIBUTE BY和SORT BY结合
2、Hive分组聚合
聚合函数指对一组值进行计算,返回单个值
Hive提供了多种聚合函数,通常与GROUP BY语句一起使用
分组函数
SELECT expression(,expression) FROM src
GROUP BY expression(,expression) HAVING condition#除了聚合函数,SELECT所选列必须出现在GROUP BY子句中#GROUP BY支持使用CASE WHEN表达式
#GROUP BY配合使用HAVING进行过滤
常用的基础聚合函数
3、Hive分组聚合综合操作
需求说明
根据零售店业务数据,查询消费金额最高的前十位客户
关键步骤:
关联查询订单表与顾客表获取顾客-订单对应关系
关联查询订单表与订单明细表获取订单-订单金额关系
从顾客-订单-订单总金额表中,按顾客分组,组内对消费 总额求和、排序