各区域热门商品统计(pyspark)
本文可看做是 用户行为分析(pyspark) 的后续篇, 主要介绍使用spark统计各区域热门商品,完整代码可以点击参考这里,代码中有详细的注释,所以可以也可以略过文章,直接看代码项目源码地址
模拟数据
模拟数据与 用户行为分析(pyspark) 中的模拟数据一样
需求
根据用户指定的日期范围,统计各个区域下最热门的3个产品
方案
产品的热度根据产品的点击量评价
- 根据筛选条件,查询用户行为记录表中的区域id和点击的产品id
1 | sql_str = "SELECT city_id, click_product_id as product_id |
- 获取城市信息
1 | # 实际应用中,这一步可能是从关系型数据库中获取城市信息,这里为了方便测试,模拟一份数据 |
- 创建包含 city_id, city_name, area, product_id 的临时表
tmp_clk_prod_basie
1 | def get_temp_click_product_table(spark, click_action_rdd, city_id_to_city_info_rdd): |
- 按照 area, product_id 分组, 计算 click_count 创建
tmp_area_product_click_count
1 | def schema_temp_area_prdocut_click_count_table(spark): |
- 利用开窗函数从
tmp_area_product_click_count
取出每个区域中点击量排名前三的 product_id
1 | def get_area_top3_product_rdd(spark): |
文章标题:各区域热门商品统计(pyspark)
文章字数:816
本文作者:Waterandair
发布时间:2018-04-22, 09:24:06
最后更新:2019-12-28, 14:03:59
原始链接:https://waterandair.github.io/2018-04-22-spark-app-area-top3-product.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。