0904-各区域Top3商品统计

该博客介绍了如何统计各个区域的热门商品Top3,基于用户点击次数作为评判标准。涉及用户访问行为表、商品信息表和城市信息的join操作,使用窗口函数获取Top3,并封装case class入库。
摘要由CSDN通过智能技术生成

需求六: 各区域Top3商品统计

6.1 需求概述

统计各个区域中Top3的热门商品,热门商品的评判指标是商品被点击的次数,对于user_visit_action表,click_product_id表示被点击的商品。

  • 用到的表
  1. 用户访问行为表
    在这里插入图片描述
  2. 商品信息表
    在这里插入图片描述
  3. 城市信息
    在这里插入图片描述
  • 结果数据
    在这里插入图片描述

5.2 简要运行流程

在这里插入图片描述

5.3 具体运行流程

  1. 从用户行为表里拿到城市id和点击商品id, 并以城市ID为key,用于和城市信息进行join操作
  2. join后转化结构,指定个字段的类型
  3. 创建基本数据表 (city_id, city_name, area, product_id)
  4. GROUP BY area,product_id 获取每个区域,每个商品的点击总和,并通过自定义函数的方式将城市信息综合
  5. 丰富表的内容 , 加入其它信息(商品状态,区域等级.商品名称)
  6. 窗口函数, 获取分组Top3
  7. 封装case class
  8. 入库

在这里插入图片描述

5.4 代码实现

5.4.1 获取数据

        // 1. 获取数据
        // RDD[(cityId, pid)]
        val cityId2PidRDD: RDD[(Long, Long)] = getCityAndProductInfo(sparkSession, taskParams)
        // RDD[(cityId, CityAreaInfo)]
        val cityId2AreaInfoRDD = getCityAreaInfo(sparkSession)
    def getCityAndProductInfo(sparkSession: SparkSession, taskParams: JSONObject) = {
   
        val startDate = ParamUtils.getParam(taskParams, Constants.PARAM_START_DATE)
        val endDate = ParamUtils.getParam(taskParams, Constants.PARAM_END_DATE)

        // 只获取发生过点击的action的数据
        // 获取到的一条action数据就代表一个点击行为
        val sql = "select city_id, click_product_id from user_visit_action where date>='" + startDate +
            "' and date<='" + endDate + "' and click_product_id != -1"

        import sparkSession.implicits._
        val cityId2PidRDD: RDD[(Long, Long)] = sparkSession.sql(sql)
            .as[CityClickProduct]
            .rdd
            .map {
   
                case (cityClickProduct) =>
                    (cityClickProduct.city_id, cityClickProduct.click_product_id)
            }
        cityId2PidRDD
    }

    def getCityAreaInfo(sparkSession: SparkSession) = {
   
        val cityAreaInfoArray = Array(
            (0L, "北京", "华北"),
            (1L, "上海", "华东"),
            (2L, "南京", "华东"),
            (3L, "广州", "华南"),
            (4L
根据最新市场调研数据,各区域热门商品top3如下: 一、华北地区: 1. 护肤品:护肤品一直是华北地区最受欢迎的商品之一,尤其是面部护肤品。消费者越来越注重皮肤健康和美容,因此各类面膜、精华液和面霜成为热门选择。 2. 电子产品:电子产品销量一直呈现增长趋势,尤其是智能手机、平板电脑和耳机等。消费者对科技产品的依赖越来越强,对于最新、功能强大的电子产品有很大的兴趣和需求。 3. 鞋类:时尚彩妆:鞋子作为人们日常穿着的重要组成部分,一直备受关注。尤其是运动鞋和时尚鞋受到年轻消费者的喜爱,因此各种款式的鞋子一直是华北地区的销售热门。 二、华东地区: 1. 服装:华东地区一直以时尚的风格闻名,因此服装一直是该地区的热门商品。不论是时装、休闲装还是运动装,各种款式和品牌的服装都备受欢迎。 2. 家居用品:作为发达城市聚集的地区,华东地区的消费者对家居用品的需求量也很大。特别是床上用品、厨房用品和儿童用品等,因为人们注重家居生活质量,所以受到广泛关注。 3. 美容化妆品:华东地区的消费者对美容化妆品有很高的关注度,尤其是彩妆产品,如口红、眼影和腮红等。人们追求个性和美丽,喜欢尝试不同的妆容和护肤品牌。 三、华南地区: 1. 水果:华南地区气候温暖潮湿,水果种植业较为发达,因此水果一直是该地区最受欢迎的商品之一。尤其是热带水果如芒果、榴莲和椰子等,深受消费者青睐。 2. 家电:华南地区经济发达,家电销售一直保持良好。电视机、冰箱和空调等大型家电是热门选择,因为人们对舒适生活的追求和家庭娱乐的需求增加。 3. 海鲜:华南地区临海,海鲜资源丰富,因此海鲜一直是该地区消费者喜爱的商品。鲍鱼、虾、螃蟹和鱼类等都是华南地区的热门食品。 以上是根据市场调研数据分析得出的各区域热门商品top3,这些商品反映了各地消费者的消费偏好和需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值