hivesql练习_会话划分问题
Posted 娜娜娜娜小姐姐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hivesql练习_会话划分问题相关的知识,希望对你有一定的参考价值。
现有页面浏览记录表(page_view_events)如下,表中有每个用户的每次页面访问记录。
user_id | page_id | view_timestamp |
---|---|---|
100 | home | 1659950435 |
100 | good_search | 1659950446 |
100 | good_list | 1659950457 |
100 | home | 1659950541 |
100 | good_detail | 1659950552 |
100 | cart | 1659950563 |
101 | home | 1659950435 |
101 | good_search | 1659950446 |
101 | good_list | 1659950457 |
101 | home | 1659950541 |
101 | good_detail | 1659950552 |
101 | cart | 1659950563 |
102 | home | 1659950435 |
102 | good_search | 1659950446 |
102 | good_list | 1659950457 |
103 | home | 1659950541 |
103 | good_detail | 1659950552 |
103 | cart | 1659950563 |
规定若同一用户的相邻两次访问记录时间间隔小于60s,则认为两次浏览记录属于同一会话。现有如下需求,为属于同一会话的访问记录增加一个相同的会话id字段,会话id格式为"user_id-number",其中number从1开始,用于区分同一用户的不同会话,期望结果如下:
user_id <int> (用户id) | page_id <string> (页面id) | view_timestamp <bigint> (浏览时间戳) | session_id <string> (会话id) |
---|---|---|---|
100 | home | 1659950435 | 100-1 |
100 | good_search | 1659950446 | 100-1 |
100 | good_list | 1659950457 | 100-1 |
100 | home | 1659950541 | 100-2 |
100 | good_detail | 1659950552 | 100-2 |
100 | cart | 1659950563 | 100-2 |
101 | home | 1659950435 | 101-1 |
101 | good_search | 1659950446 | 101-1 |
101 | good_list | 1659950457 | 101-1 |
101 | home | 1659950541 | 101-2 |
101 | good_detail | 1659950552 | 101-2 |
101 | cart | 1659950563 | 101-2 |
102 | home | 1659950435 | 102-1 |
102 | good_search | 1659950446 | 102-1 |
102 | good_list | 1659950457 | 102-1 |
103 | home | 1659950541 | 103-1 |
103 | good_detail | 1659950552 | 103-1 |
解答:
with tt as( SELECT user_id,page_id,view_timestamp, lag(view_timestamp, 1, 0) over(partition by user_id order by view_timestamp) last_view_timestamp FROM page_view_events ) select user_id, page_id, view_timestamp, concat(user_id, "-", sum(if(view_timestamp - last_view_timestamp > 60, 1, 0)) over(partition by user_id order by view_timestamp)) session_id from tt
做题加练习
做题加练习
hive窗口函数练习题
https://blog.csdn.net/weixin_45775873/article/details/109556502
hive sql 50道练习题
https://blog.csdn.net/qq_37064763/article/details/120673550
尚硅谷
牛客
更新中。。。
以上是关于hivesql练习_会话划分问题的主要内容,如果未能解决你的问题,请参考以下文章