37.Spark大型电商项目-用户访问session分析-session随机抽取之实现思路分析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/someby/article/details/88189853

目录

需求

思路

数据分析


本篇文章将介绍用户访问session分析-session随机抽取之实现思路分析。

需求

每一次执行用户访问session分析模块,要抽取出100个session。

思路

session随机抽取:按每天的每个小时的session数量,占当天session总数的比例,乘以每天要抽取的session数量,计算出每个小时要抽取的session数量;然后呢,在每天每小时的session中,随机抽取出之前计算出来的数量的session。

举例:10000个session,100个session;0点~1点之间,有2000个session,占总session的比例就是0.2;按照比例,0点~1点需要抽取出来的session数量是100 * 0.2 = 20个;在0点~1点的2000个session中,随机抽取出来20个session。

数据分析

我们之前有什么数据:session粒度的聚合数据(计算出来session的start_time)

session聚合数据进行映射,将每个session发生的yyyy-MM-dd_HH(start_time)作为key,value就是session_id
对上述数据,使用countByKey算子,就可以获取到每天每小时的session数量

(按时间比例随机抽取算法)每天每小时有多少session,根据这个数量计算出每天每小时的session占比,以及按照占比,需要抽取多少session,可以计算出每个小时内,从0~session数量之间的范围中,获取指定抽取数量个随机数,作为随机抽取的索引

扫描二维码关注公众号,回复: 5623365 查看本文章

把之前转换后的session数据(以yyyy-MM-dd_HH作为key),执行groupByKey算子;然后可以遍历每天每小时的session,遍历时,遇到之前计算出来的要抽取的索引,即将session抽取出来;抽取出来的session,直接写入MySQL数据库

猜你喜欢

转载自blog.csdn.net/someby/article/details/88189853