105.Spark大型电商项目-各区域热门商品统计-查询各区域各商品的点击次数并拼接城市列表

本文介绍了一种使用Spark SQL实现的方案,该方案用于统计不同区域内的商品点击次数,并且能够生成包含各区域热门商品及其对应城市的列表。通过执行特定的SQL语句,实现了对原始点击数据的聚合和城市信息的拼接。

目录

修改mysql数据表字段

area_top3_product

代码

AreaTop3ProductSpark.java


本篇文章记录各区域热门商品统计-查询各区域各商品的点击次数并拼接城市列表。

修改mysql数据表字段

area_top3_product

alter table area_top3_product change city_names city_infos varchar(255);

代码

AreaTop3ProductSpark.java


    /**
     * 生成各区域各商品点击次数的临时表
     * @param sqlContext
     */
    private static void genrateTempAreaProductClickCountTable(SQLContext sqlContext) {
        // 按照area和product_id两个字段进行分组
        // 计算出各区域各商品的点击次数
        // 可以获取到每个area下的每个product_id的城市信息拼接起来的串
        String sql = "SELECT " +
                    "area," +
                    "product_id, " +
                    "count(*) click_count, " +
                    "group_concat_distinct(concat_long_string(city_id,city_name,':')) city_infos " +
                "FROM tmp_click_product_basic " +
                "GROUP BY area,product_id ";

        // 使用Spark SQL执行这条SQL语句
        Dataset ds = sqlContext.sql(sql);

        // 再次将查询出来的数据注册为一个临时表
        // 各区域各商品的点击次数(以及额外的城市列表)
        ds.registerTempTable("tmp_area_product_click_count");
    }

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值