2016年大数据Spark“蘑菇云”行动代码学习之AdClickedStreamingStats模块分析
2016年大数据Spark“蘑菇云”行动代码学习之AdClickedStreamingStats模块分析
系统背景:用户使用终端设备(IPAD、手机、浏览器)等登录系统,系统采用js脚本发送用户信息和广告点击信息到后台日志,进入flume监控,通过kafka消息中间件传输数据,由Spark Streaming消费后将信息存储到后台。本模块主要就是实现将kafka发送的信息进行过滤,动态更新黑名单,生成有效的广告点击数据,形成广告点击趋势,将相关信息通过数据库连接池写入数据库MySql。
实现思路:由于kafka传输的广告点击数据中有一些是无效数据,需要根据一定的规则进行过滤(本方案采取简单的黑名单过滤的方式进行过滤,还可以采用机器学习的方式进行过滤——可以做一个大课题研究、大数据黄金岗位、下一步重点方向)。
在形成有效的广告点击数据后,按照天为单位,对广告点击次数进行累计,同时按照一天点击次数超过?次形成新的黑名单,持久化到后台。
对广告按照时间、省份、城市进行点击次数更新,然后插入或更新到MySql数据库。
由DataFrame的GroupBy,计算出每天每个省份的Top5排名的广告。
采用窗口函数reduceByKeyAndWindow计算过去半个小时内广告点击的趋势。
具体的流程如下:
AdClickedStreamingStats模块流程图
初始化Spark的运行环境,加载必要的JAR包
设置kafka的参数(broker地址列表、Topics)
从kafka获取数据(time+IP+UserID+AdID+province+city)
从数据库获取黑名单信息(UserID),生成黑名单RDD,格式为map(UserID,true)
将广告点击数据按(UserID,字串流)形成广告点击RDD
广告点击RDD和黑名单RDD左外连接,形成UserID,(字串流,true或者为空)的RDD
从新的RDD过滤出用户名不在黑名单上的广告点击RDD(UserID,字串流)
累加有效的广告点击次数RDD
("time_IP_userID_adID_province_city",long)
根据一天内的点击次数,来过滤出有效的广告点击数
(代码中一天内大于1次就过滤掉了?)
形成用户广告点击ListBuffer
插入或者更新用户广告点击数据
(当天已有记录则将广告点击数累加后更新,否则插入)
根据当天、用户、广告,获得总的点击数,
如果大于81次,形成新的黑名单
根据用户ID,进行黑名单去重操作并写入
按照日期+广告ID+省+市,形成新的广告点击RDD
updateStateByKey,更新状态?
写入或更新广告点击数据(日期+广告+省+市+点击数)
按省进行Group by,然后查询出点击排名前5的广告
将当天+广告的TOP5数据库清空,然后插入新的数据
计算过去半小时广告点击的趋势
形成(广告ID+Time)的DStream
根据滑动窗口(半小时、5分钟),计算出广告点击趋势
写入广告点击趋势数据
转载于:https://blog.51cto.com/36006798/1861261
2016年大数据Spark“蘑菇云”行动代码学习之AdClickedStreamingStats模块分析相关推荐
- 大数据Spark “蘑菇云”行动第103课:Hive源码大师之路第一步:Hive源码思考和解析初体验
大数据Spark "蘑菇云"行动第103课:Hive源码大师之路第一步:Hive源码思考和解析初体验 老师上课使用的Hive源码下载地址:http://www-eu.apache. ...
- 大数据Spark “蘑菇云”行动第76课: Kafka+Spark Streaming+Redis项目实战
大数据Spark "蘑菇云"行动第76课: Kafka+Spark Streaming+Redis项目实战 jedis插件 redis <dependency> ...
- 大数据Spark超经典视频链接全集
论坛贴吧等信息发布参考模板 Scala.Spark史上最全面.最详细.最彻底的一整套视频全集(特别是机器学习.Spark Core解密.Spark性能优化.Spark面试宝典.Spark项目案例等). ...
- 光环大数据spark文档_推荐大数据Spark必读书目
我有一个非常要好的同事,无数次帮我解决了业务上的痛.技术能力很强,业务方面也精通.而且更耐得住加班,并且是自愿加班,毫无怨言.不像我,6点到准时走人了.但就是这么一位兢兢业业的技术人,却一直没有升职加 ...
- 【2016年第1期】CCF大专委2016年大数据发展趋势预测—— 解读和行动建议
中图分类号:TP399 文献标识码:A doi: 10.11959/j.issn.2096-0271.2016012 1 引言 2015中国大数据技术大会(BDTC)于2015年12月10日在北京召开 ...
- 推荐大数据Spark必读书目
点击蓝色"有关SQL"关注我哟 加个"星标",天天与10000人一起快乐成长 我有一个非常要好的同事,无数次帮我解决了业务上的痛.技术能力很强,业务方面也精通. ...
- 【BDTC 2016】大数据云服务论坛:云上的大数据探索
2016年12月8-10日,由中国计算机学会(CCF)主办,CCF大数据专家委员会承办,中国科学院计算技术研究所.中科天玑数据科技股份有限公司与CSDN共同协办,以"聚焦行业最佳实践,数据与 ...
- 2016 CCF大数据与计算智能大赛 开源资料整理
2016 CCF大数据与计算智能大赛 开源资料整理 2016 CCF 大数据与计算智能大赛已经落下帷幕,11个赛题由众多大神包揽奖项,其中有些还在赛后开源了比赛资料,现将目前已知的资料整理如下,供各位 ...
- 大数据Spark入门案例5–统计广告点击数量排行Top3(scala版本)
大数据Spark入门案例5–统计每广告点击数量排行Top3(scala版本) 1 数据准备 链接:https://pan.baidu.com/s/1afzmL-hNsAJl1_gx_dH2ag 提取码 ...
最新文章
- 国内自动驾驶公司争先入局Robotaxi
- 【分块答案】【最小割】bzoj1532 [POI2005]Kos-Dicing
- H3C交换机常用巡检命令
- 作者:周绮凤,女,博士,厦门大学自动化系副教授。
- 34. 二分查找左右边界
- cv2读取np的矩阵图片,numpy数组clip和astype,查看数据类型array.dtype
- excel保存快捷键_电脑技巧篇之快捷键
- 引用阿里图标库(iconFont)的三种方式
- 手机号、身份证格式校验
- AutoRunner 功能自动化测试项目实训之第二个实战案例(五)
- hdu 4899 Hero meet devil
- [转]如何实现按键精灵的简单路点行走
- “互联网+”拯救了星巴克
- [OSGI] Felix基本环境搭建及操作
- easy-mock使用
- 为保护其App Store,苹果不惜拉踩安卓:iOS比Android更安全!
- php 正文提取算法,基于机器学习的网页正文提取方法
- 《程序员修炼之道:从小工到专家》笔记-----第二章
- radio选中触发事件以及获取选中的值
- 2022亚太杯C题思路代码分析