HIVE中row_number函数的描述与使用场景
假设一个场景:存在表user_score,该表的数据如下
SELECT id, rate, score FROM(SELECT * FROM user_score DISTRIBUTE BY rate SORT BY rete ASC, score DESC) WHERE ROW_NUMBER(rete) <= 2
这里有两点需要说明:
使用子查询保证ROW_NUMBER在reduce端执行。使用BY rate SORT BY rete ASC, score DESC 来保证rate相同的记录被分配到相同的REDUCE中。