小打卡圈主与用户映射关系问题

需求是计算每个圈主名下,每个用户加入的圈子数量,即使用户加入多个圈子也只计算一次。解决方案涉及Hive SQL,通过left join将圈子表与用户圈子关系表关联,然后使用group by进行去重计数,避免在大数据量时使用distinct导致性能下降。
摘要由CSDN通过智能技术生成

需求分析

已知,数据如下:

圈子可以理解为微信公众号,用户可以理解为公众号的粉丝 tb_habit圈子表:近千万行数据

master_id(圈住的用户id)    habit_id(圈住所建的圈子)
open_id1    habit_id1
open_id1    habit_id2
open_id1    habit_id3
open_id2    habit_id4
open_id2    habit_id5
open_id3    habit_id6
open_id3    habit_id7
..........    ...............

user_habit_relation用户与圈子关系表:亿行数据

habit_id(所建的圈子)    user_id(加入圈子的用户)
habit_id1    user_id1
habit_id1    user_id3
habit_id1    user_id4
habit_id3    user_id2
habit_id3    user_id1
habit_id2    user_id5
habit_id2    user_id1
habit_id2    user_id7
habit_id4    user_id11
habit_id4    user_id12
habit_id4    user_id1
habit_id6    user_id17

需求:请用hive sql计算出如下结果(同一个圈主名下,同一个用户加多个圈子只计算一次):

需求实现

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值