- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北风网大数据实战培训 数据格式: 日期 用户 搜索词 城市 平台 版本 需求: 1、筛选出符合查询条件(城市、平台、版本)的数据 2、统计出每天搜索uv排名前3的搜索词 3、按照每天的top3搜索词的uv搜索总次数,倒序排序 4、将数据保存到hive表中 每日top3热点搜索词统计案例实战 1、针对原始数据(HDFS文件),获取输入的RDD 2、使用filter算子,去针对输入RDD中的数据,进行数据过滤,过滤出符合查询条件的数据。 2.1 普通的做法:直接在fitler算子函数中,使用外部的查询条件(Map),但是,这样做的话,是不是查询条件Map,会发送到每一个task上一份副本。(性能并不好) 2.2 优化后的做法:将查询条件,封装为Broadcast广播变量,在filter算子中使用Broadcast广播变量进行数据筛选。 3、将数据转换为“(日期_搜索词, 用户)”格式,然后呢,对它进行分组,然后再次进行映射,对每天每个搜索词的搜索用户进行去重操作,并统计去重后的数量,即为每天每个搜索词的uv。最后,获得“(日期_搜索词, uv)” 4、将得到的每天每个搜索词的uv,RDD,映射为元素类型为Row的RDD,将该RDD转换为DataFrame 5、将DataFrame注册为临时表,使用Spark SQL的开窗函数,来统计每天的uv数量排名前3的搜索词,以及它的搜索uv,最后获取,是一个DataFrame 6、将DataFrame转换为RDD,继续操作,按照每天日期来进行分组,并进行映射,计算出每天的top3搜索词的搜索uv的总数,然后将uv总数作为key,将每天的top3搜索词以及搜索次数,拼接为一个字符串 7、按照每天的top3搜索总uv,进行排序,倒序排序 8、将排好序的数据,再次映射回来,变成“日期_搜索词_uv”的格式 9、再次映射为DataFrame,并将数据保存到Hive中即可 实现思路分析 1、我们这里,只用了Java来实现,是因为整个案例过于复杂,如果再用Scala来实现的话,那么时间会耗费的很长,而且意义并不大 2、而且,我们通过Java开讲解,已经把数据格式、需求、具体实现思路、如何优化(broatcast),都讲解的非常清晰了,而且开发过程中,也做了大量的讲解;相信大家通过目前为止的讲解,已经知道应该如何开发这个复杂的案例和类似的需求了 3、所以,更好的一个做法,是将Scala版本实现,留给大家自己去做,作为课后作业 4、实际上,如果大家之前能够掌握我们讲的所有的内容,应该完全,是可以用Scala开发出这个程序的 这个案例,是完全从实际企业需求改造了一点点,抽取出来的,完全企业级实战。这种需求在实际工作中,可能并不是某个大数据分析系统的模块。但是更多的是,PM或老大的需求,要求每个月,跑一次,统计上个月,每天搜索uv前3的热词。那么其实,你可以用crontab来定时调度该shell脚本,每个月1号跑一次,跑上个月的数据。只要在filter中,过滤数据,即可。 每日top3热点搜索词统计案例实战 欢迎访问我们的官方网站
您可能关注的文档
最近下载
- 中华人民共和国固体废物污染环境防治法测试题(含答案).pdf VIP
- 中华人民共和国固体废物污染环境防治法测试题(含答案).docx VIP
- 中华人民共和国固体废物污染环境防治法测试题及参考答案.docx VIP
- 外骨骼机器人行业技术壁垒突破与成本控制.docx VIP
- 中华人民共和国固体废物污染环境防治法练习题及参考答案.docx VIP
- 《中华人民共和国水污染防治法》考试知识题库(选择题+详解答案).docx VIP
- 新版《水污染防治法》考试题库(含答案).docx VIP
- 《中华人民共和国水污染防治法》考试知识题库(选择题+详解答案).docx VIP
- [教育]跳动的尼龙.pdf
- 《中华人民共和国水污染防治法》考试知识题库及答案.docx VIP
原创力文档


文档评论(0)