hive-实践
文章平均质量分 69
向上的胡萝卜
这个作者很懒,什么都没留下…
展开
-
Hive 分区排序 rank dense_rank row_number
综合查询 select province,city, rank() over (order by people desc) rank, dense_rank() over (order by people desc) dense_rank, row_number() over(order by people desc) row_number from pcp group by prov原创 2016-03-01 18:56:58 · 1191 阅读 · 0 评论 -
Hive TopN+分组TopN
TopN 可以通过sort by limit N 来实现 比 通过order by limit N 来实现要快得多 个人感觉sort by使用的时候如果能合理使用distribute by的话会更均衡一些 sort by可以启动多个reduce,每个reduce做局部排序,但是这对于sort by limit N已经够用了。第一个JOB是在每个reduce中做局部排序,然后分别取TO原创 2016-03-01 19:41:04 · 2859 阅读 · 0 评论 -
Hive 层次查询
使用窗口函数:NTILE SELECT cookieid, createtime, pv, NTILE(2) OVER(PARTITION BY cookieid ORDER BY createtime) AS rn1,--分组内将数据分成2片 NTILE(3) OVER(PARTITION BY cookieid ORDER BY createtime) AS rn2, --分组内将原创 2016-03-01 20:11:00 · 3357 阅读 · 0 评论 -
Hive 上下文分析 LAG LEAD
使用窗口函数 LAG SELECT cookieid, createtime, url, ROW_NUMBER() OVER(PARTITION BY cookieid ORDER BY createtime) AS rn, LAG(createtime,1,'1970-01-01 00:00:00') OVER(PARTITION BY cookieid ORDER BY create原创 2016-03-01 20:17:29 · 523 阅读 · 0 评论 -
Hive 源头获取 终点获取
使用窗口函数 FIRST_VALUE 场景:你定义了每个用户的每个订单的最开始来源为第一单。那么每个用户的每个订单的来源订单就用FIRST_VALUE SELECT cookieid, createtime, url, ROW_NUMBER() OVER(PARTITION BY cookieid ORDER BY createtime) AS rn, FIRST_VALUE(ur原创 2016-03-01 20:26:43 · 279 阅读 · 0 评论 -
Hive 累积和的计算
使用窗口函数Sum eg:统计1-12月的累积销量,即1月为1月份的值,2月为1.2月份值的和,3月为123月份的和,12月为1-12月份值的和 SELECT month, SUM(amount) month_amount, SUM( SUM(amount)) OVER (ORDER BY month ROWS BETWEEN UNBOUNDED PRECEDING A原创 2016-03-01 19:59:55 · 8185 阅读 · 0 评论 -
hive 实例
1.得出2015年每个用户前2次订单,并得出每个订单购买的商品号列表 select * from ( select cust_id,parent_id,concat_ws('#', collect_set(product_id)),row_number() over (partition by cust_id order by order_creation_date) as paiming原创 2016-03-10 18:58:28 · 577 阅读 · 0 评论