大数据IMF传奇行动绝密课程第80课:Spark SQL网站搜索综合案例实战

来源:互联网 发布:mac系统剪切快捷键 编辑:程序博客网 时间:2024/04/30 16:21

Spark SQL网站搜索综合案例实战

1、案例解析
2、案例实战

找出搜索平台上用户每天搜索排名前5名的产品
元数据:Date、User、Item、City、Device
总体思路:混合使用Spark SQL和Spark Core的内容
一、原始的ETL,过滤数据后产生目标数据数据,在实际企业中可能过滤条件非常复杂(进行广播),使用RDD的filter等进行操作;
二、对过滤后的目标数据进行制定条件的查询。查询条件有可能非常复杂(进行广播),使用RDD的filter算子;
三、由于商品是分为种类的,我们在得出最终结果之前,首先会基于商品进行UV,当然也可以对用户访问商品的PV进行分析
此时我们要对商品进行UV计算的话,必须构建K-V的RDD,例如构建成为(date#Item,userID)以方便进行groupByKey操作
在调用了groupByKey之后对user进行去重,并计算出每一天每一种商品的UV,最终计算出来的结果的数据类型(date#Item,UV)
四、使用开窗函数row_number统计出每日商品UV前5名的内容,row_number() OVER (PARTITION BY date ORDER BY uv DESC) rank
此时会产生以date、item、uv为Row的DataFrame
五、DataFrame转成RDD,根据日期进行分组并分析出每天排名前5位的热搜索Item
六、进行Key-Value交换,然后进行调用sortByKey进行点击热度排名
七、再次进行Key-Value交换,得出目标数据(date#Item,UV)
八、通过RDD直接操作Mysql等把结果放入生产系统中的DB中,再通过Java EE等Server技术可视化结果以供市场营销人员、仓储调度系统、快递系统、管理决策人员使用数据创造价值。
当然也可以放在Hive中,Java EE等技术通过JDBC等连接访问Hive,当然也可以就放在Spark SQL中,通过Thrift技术供Java EE使用等;但是像双十一等时候,一般首选放在Redis中,这样可以实现类似秒杀系统的响应速度。

0 0
原创粉丝点击