hiveSQL:统计视频观看数Top50所关联视频的所属类别Rank

一.统计此题需要多表连接嵌套,需要使用到的内置处理函数有:

1.order by desc :字段按照降序排列(不加desc默认升序)

2.lateral view :(侧写表,关联)

用法:LATERAL VIEW udtf(expression) tableAlias AS columnAlia

3.explode:将 hive 一列中复杂的 Array 或者 Map 结构拆分成多行

4.group by:按字段分数查询

5.count():聚合函数,求总数量

二.相关的字段表与解释

三.步骤:

第一步:查询视频热度前50位的视频   分类和相关视频id

select 
    views,
    category about_category,
    relatedId about_id_array 
from 
    video 
order by 
    views 
desc limit 50; t1 

第二步:打散相关视频id,再把视频分类和每个id一一对应起来

select 
    t1.about_category cate,
    about_id
from ()t1
lateral view 
    explode(t1.about_id_array) tmp_table as about_id; t2

第三步:再将视频分类打散,与每个视频id对应起来

select
    id
from
    () t2
lateral view
    explode(t2.cate) tmp_t as id; t3

第四步:再通过分组计算出分类字段的数量,然后降序排列

select 
    count(t3.id) count_id,
    t3.id category_name
from 
    ()t3
group by 
    t3.id 
order by 
    count_id desc;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值