Hive分析函数row_number() 【分组topk】
来源:互联网 发布:喜剧电影推荐知乎 编辑:程序博客网 时间:2024/05/18 01:39
摘要
本文根据实际业务需求展示了Hive分析函数row_number()的用法。
http://my.oschina.net/jackieyeah/blog/681274
业务背景
最近有一个需求是给用户浏览的商品进行评分, 然后将商品评分按降序排序, 最后取 Top 50 推荐给终端用户。评分的计算公式为: 该商品一个月内的购买次数 / 该商品两个月内的浏览次数。在实现该需求的时候就用到了 Hive 中内置的分析函数 row_number()。
row_number()函数简介
row_number() 函数的简单用法如下:
ROW_NUMBER() OVER (DISTRIBUTE BY COLUMN_A SORT BY COLUMN_B ASC/DESC)
说明: DISTRIBUTE BY COLUMN_A 的意思是按照 COLUMN_A 进行分组, SORT BY COLUMN_B 的意思是按照 COLUMN_B 进行排序, 后面跟着 ASC/DESC 指定是按照升序还是降序排序。row_number() 按指定的列进行分组生成行序列, 从 1 开始, 如果两行记录的分组列相同, 则行序列+1。
需求实现
数据表 user_item_score 结构大致如下:
实现 SQL 如下:
select user_id, item_id, item_score from ( select *, row_number() over ( distribute by user_id sort by item_score desc) rownum from user_item_score) tempwhere rownum <= 50;
最终结果如下:
© 著作权归作者所有
0 0
- Hive分析函数row_number() 【分组topk】
- Hive分析函数row_number()
- hive分组排序函数-row_number() over&nbs
- Hive 【分组topk 有用的】
- Hive UDF实现分析函数row_number
- Hive UDF实现分析函数row_number
- [Hive]分析函数 RANK ROW_NUMBER CUME_DIST CUME_DIST
- Pig、Hive 解决分组 TopK 问题
- Hive函数row_number实现
- HIVE分析窗口函数:NTILE,ROW_NUMBER,RANK,DENSE_RANK
- Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
- Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
- Hive分析窗口函数之NTILE,ROW_NUMBER,RANK和DENSE_RANK
- Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
- Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
- Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
- Hive窗口和分析函数[RANK()、DENSE_RANK()、ROW_NUMBER()]
- Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
- Linux 命令PS
- 最全的CSS浏览器兼容问题
- Android.mk 文件语法详解
- JSON.simple example – Read and write JSON Read
- 剑指offer|和为S的连续正数序列
- Hive分析函数row_number() 【分组topk】
- RecyclerView实现瀑布流布局
- 如何复制带有标注格式的文字
- mysql学习笔记
- 南阳oj STL分类练习
- centos6.5安装php5.6
- oc中页面传值问题
- 判断文件是否占用的三种方法
- Android Launcher浅析(三)