hive row_number()函数创建错误的结果
当在具有1024个行以上的蜂巢表上使用Row_number()时,功能row_number()重复行带有单独的行号。如果使用rank()或dense_rank(),则不存在问题。
通过使用具有多个具有不同值的1024行的大表,然后使用涉及row_number()的查询。然后,它将导致两次相同的不同值在1024中分开两次。
SELECT cell
,mobilearea
,dat
,row_number() OVER (
PARTITION BY mobilearea
,day
) AS ind
FROM mk.sd_areadetails_tmp;
它在下面显示了结果,并重复了错误。
cell mobilearea day ind
...
13e98 Tiankong 2022-04-11 1016
86e19 Tiankong 2022-04-11 1017
73a7e Tiankong 2022-04-11 1018
1dafd Tiankong 2022-04-11 1019
3e59e Tiankong 2022-04-11 1020
a3aaf Tiankong 2022-04-11 1021
0b3d1 Tiankong 2022-04-11 1022
ad190 Tiankong 2022-04-11 1023
994aa Tiankong 2022-04-11 *1024*
d552b Tiankong 2022-04-11 *1*
61623 Tiankong 2022-04-11 2
01869 Tiankong 2022-04-11 3
a5478 Tiankong 2022-04-11 4
4c63b Tiankong 2022-04-11 5
7f90b Tiankong 2022-04-11 6
6e3ab Tiankong 2022-04-11 7
294ad Tiankong 2022-04-11 8
4f739 Tiankong 2022-04-11 9
When using ROW_NUMBER() on hive tables with more than 1024 rows, the function ROW_NUMBER() duplicates rows with separate row numbers. If use rank() or dense_rank() insteadly, the issue is not present.
Reproduce by using a large table with more than 1024 rows with distinct values and then using a query involving ROW_NUMBER(). It will then result in getting the same distinct values twice with separate row numbers apart by 1024.
SELECT cell
,mobilearea
,dat
,row_number() OVER (
PARTITION BY mobilearea
,day
) AS ind
FROM mk.sd_areadetails_tmp;
It shows below result with error duplicated ind.
cell mobilearea day ind
...
13e98 Tiankong 2022-04-11 1016
86e19 Tiankong 2022-04-11 1017
73a7e Tiankong 2022-04-11 1018
1dafd Tiankong 2022-04-11 1019
3e59e Tiankong 2022-04-11 1020
a3aaf Tiankong 2022-04-11 1021
0b3d1 Tiankong 2022-04-11 1022
ad190 Tiankong 2022-04-11 1023
994aa Tiankong 2022-04-11 *1024*
d552b Tiankong 2022-04-11 *1*
61623 Tiankong 2022-04-11 2
01869 Tiankong 2022-04-11 3
a5478 Tiankong 2022-04-11 4
4c63b Tiankong 2022-04-11 5
7f90b Tiankong 2022-04-11 6
6e3ab Tiankong 2022-04-11 7
294ad Tiankong 2022-04-11 8
4f739 Tiankong 2022-04-11 9
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论