(十五)top10热门品类之需求回顾以及实现思路分析
发布日期:2021-11-18 17:47:34
浏览次数:8
分类:技术文章
本文共 958 字,大约阅读时间需要 3 分钟。
文章目录
需求回顾:top10热门品类
- 计算出来通过筛选条件的那些session,他们访问过的所有品类(点击、下单、支付),按照各个品类的点击、下单和支付次数,降序排序,获取前10个品类,也就是筛选条件下的那一批session的top10热门品类;通俗的讲就是找当前所有session下的 热门用户;
- 点击、下单和支付次数:优先按照点击次数排序、如果点击次数相等,那么按照下单次数排序、如果下单次数相当,那么按照支付次数排序
这个需求是很有意义的,因为这样,就可以让数据分析师、产品经理、公司高层,随时随地都可以看到自己感兴趣的那一批用户,最喜欢的10个品类,从而对自己公司和产品的定位有清晰的了解,并且可以更加深入的了解自己的用户,更好的调整公司战略
二次排序:
如果我们就只是根据某一个字段进行排序,比如点击次数降序排序,那么就不是二次排序;
二次排序,顾名思义,就是说,不只是根据一个字段进行一次排序,可能是要根据多个字段,进行多次排序的 点击、下单和支付次数,依次进行排序,就是二次排序sortByKey算子,默认情况下,它支持根据int、long等类型来进行排序,但是那样的话,key就只能放一个字段了
所以需要自定义key,作为sortByKey算子的key,自定义key中,封装n个字段,并在key中,自己在指定接口方法中,实现自己的根据多字段的排序算法 然后再使用sortByKey算子进行排序,那么就可以按照我们自己的key,使用多个字段进行排序本模块中,最最重要和核心的一个Spark技术点
实现思路分析:
1、拿到通过筛选条件的那批session,访问过的所有品类
2、计算出session访问过的所有品类的点击、下单和支付次数,这里可能要跟第一步计算出来的品类进行join 3、自己开发二次排序的key 4、做映射,将品类的点击、下单和支付次数,封装到二次排序key中,作为PairRDD的key 5、使用sortByKey(false),按照自定义key,进行降序二次排序 6、使用take(10)获取,排序后的前10个品类,就是top10热门品类 7、将top10热门品类,以及每个品类的点击、下单和支付次数,写入MySQL数据库 8、本地测试 9、使用Scala来开发二次排序key转载地址:https://blog.csdn.net/weixin_37850264/article/details/112379151 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月26日 09时15分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
文本编辑器中替换对话框的设计与实现
2019-04-28
文本编辑器实现跳转到指定行的功能
2019-04-28
文本编辑器中实现设置工具栏和状态栏可见性的功能
2019-04-28
计数信号量的删除与状态查询
2019-04-28
邮箱的原理与创建
2019-04-28
邮箱的获取与释放
2019-04-28
使用信号量实现简单双向同步
2019-04-28
环状同步造成的死锁问题
2019-04-28
利用全局数据实现数据通信
2019-04-28
利用邮箱实现数据通信
2019-04-28
系统时钟节拍设置
2019-04-28
客户端程序初步加入网络通讯的功能
2019-04-28
服务端程序的初步实现
2019-04-28
解析扩展分区的数量
2019-04-28
登录功能和公聊功能的实现
2019-04-28
私聊模式的设计与实现
2019-04-28
管理员权限的实现
2019-04-28
网络聊天程序的完善
2019-04-28
任务延时的配置
2019-04-28
一次性定时事件的处理
2019-04-28