hive row_number()函数创建错误的结果

发布于 2025-01-21 04:50:55 字数 1089 浏览 0 评论 0原文

当在具有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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文