Hive 实操案例二:统计 Top10 视频类别热度

一、数据表结构

视频表 t_video

字段 注释 描述
videoId 视频唯一 id(String) 11 位字符串
uploader 视频上传者(String) 上传视频的用户名 String
age 视频年龄(int) 视频在平台上的整数天
category 视频类别(Array<String> 上传视频指定的视频分类
length 视频长度(Int) 整形数字标识的视频长度
views 观看次数(Int) 视频被浏览的次数
rate 视频评分(Double) 满分 5 分
Ratings 流量(Int) 视频的流量,整型数字
conments 评论数(Int) 一个视频的整数评论数
relatedId 相关视频 id(Array<String> 相关视频的 id,最多 20 个

二、具体实现

sql 复制代码
-- 统计视频类别热度(视频个数) Top10
/**
 思路:
   1.由于 category 字段类型为 Array<String>,为便于统计先使用爆炸函数 explode 将字段值扁平化
   2.按照扁平化后的视频类别值分组聚合统计个数
   3.使用排序窗口函数对所有视频类别按个数进行降序编号
   4.使用 where 子句筛选 top10 数据
*/
SELECT 
	rn,
	cg,
	`views`
FROM 
(
	SELECT 
		cg,
		`views`,
		DENSE_RANK() over(ORDER by `views` DESC) as rn 
	FROM 
	(
		SELECT 
			cg,
			sum(1) as `views` 
		FROM t_video
		lateral view explode(category) adtable as cg
		group by cg
	) t1
) t2
WHERE rn<=10;
相关推荐
天呐草莓2 分钟前
企业微信自动打标签教程
大数据·python·微信·微信小程序·小程序·企业微信
laozhao4323 分钟前
各方面横向对比,标标达和剑鱼标讯谁更正规?
大数据·人工智能
汽车仪器仪表相关领域4 分钟前
ZRT-I 精密减速器测试系统
大数据·运维·功能测试·安全·单元测试·负载均衡·压力测试
数字护盾(和中)4 分钟前
AI正在重塑网络安全:自动化渗透测试如何让企业“先攻后防”?
大数据·运维
莫叫石榴姐9 分钟前
Doris为2.1版本,但json_each不可以用解决方法
数据仓库·json
Elastic 中国社区官方博客13 分钟前
Elasticsearch:圣诞晚餐 BBQ
大数据·人工智能·elk·elasticsearch·搜索引擎·ai·全文检索
无泪无花月隐星沉21 分钟前
uos server 1070e部署Hadoop
大数据·运维·服务器·hadoop·分布式·uos·国产化os
说私域23 分钟前
基于AI智能名片链动2+1模式S2B2C商城小程序的商户端微商平台构建研究
大数据·人工智能·小程序
kuankeTech33 分钟前
生鲜进出口贸易数字化转型:智慧外贸ERP解决方案破解行业痛点
大数据·人工智能·开源软件·软件开发·erp
liliangcsdn34 分钟前
对多模态扩散模型UNet架构的探索
大数据·人工智能