(十四)session随机抽取
发布日期:2021-11-18 17:47:23 浏览次数:8 分类:技术文章

本文共 754 字,大约阅读时间需要 2 分钟。

文章目录


每一次执行用户访问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点~点的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数量之间的范围中,获取指定抽取数量个随机数,作为随机抽取的索引
  • 把之前转换后的session数据(以yyyy-MM-dd_HH作为key),执行groupByKey算子;然后可以遍历每天每小时的session,遍历时,遇到之前计算出来的要抽取的索引,即将session抽取出来;抽取出来的session,直接写入MySQL数据库

转载地址:https://blog.csdn.net/weixin_37850264/article/details/112259438 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:(一)Hadoop的RPC
下一篇:(十三)session聚合统计

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月07日 00时35分55秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章