gpt4 book ai didi

user-defined-functions - Hive 通过查询获取组中的前 n 条记录

转载 作者:行者123 更新时间:2023-12-03 11:36:42 26 4
gpt4 key购买 nike

我在 hive 中有下表

用户 ID、用户名、用户地址、点击次数、展示次数、页面 ID、页面名称

我需要通过点击每个页面 [page-id,page-name] 找出前 5 个用户 [user-id,user-name,user-address]

我知道我们需要先按 [page-id,page-name] 分组,在每个组内我想按 [clicks,impressions] desc 排序,然后只发出前 5 个用户 [user-id, user-name, user- address] 每个页面,但我发现很难构建查询。

我们如何使用 Hive UDF 做到这一点?

最佳答案

您可以使用此处描述的 rank() UDF 来实现:http://ragrawal.wordpress.com/2011/11/18/extract-top-n-records-in-each-group-in-hadoophive/

SELECT page-id, user-id, clicks
FROM (
SELECT page-id, user-id, rank(user-id) as rank, clicks
FROM mytable
DISTRIBUTE BY page-id, user-id
SORT BY page-id, user-id, clicks desc
) a
WHERE rank < 5
ORDER BY page-id, rank

关于user-defined-functions - Hive 通过查询获取组中的前 n 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9390698/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com