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;
相关推荐
isfox3 小时前
MapReduce 作业慢?别乱调参数,先找到瓶颈在哪
大数据
玩美数据5 小时前
市场调研数据分析与数据集驱动的行业格局变革深度解析
大数据·人工智能
微订校园外卖系统6 小时前
校园代取快递系统选型:现成系统与定制开发的技术核对项
大数据·运维·人工智能·外卖系统·本地生活·微订
挖掘狂人7 小时前
Token 都上双十一货架了,AI 电脑的账该怎么算?
大数据·程序员·ai编程
Black蜡笔小新8 小时前
消防控制室/配电房/中控室...视频汇聚平台EasyCVR岗位AI智能监测方案守住关键岗位
大数据·音视频·easycvr
大大大大晴天1 天前
每天认识一个组件:Apache Spark
大数据
七夜zippoe1 天前
Agent 上线第一天就炸了:6 个生产事故的根因分析与修复记录
大数据·ai·agent·根因分析·修复记录
字节跳动数据平台1 天前
不重拍,也能换道具、换商品、换画风?短剧转漫、电商换款新解法来了
大数据
武子康1 天前
攻击动作做对了,游戏规则就对了吗?H3-World 与三条控制路线的分工
大数据·人工智能·agent
Lansonli1 天前
大数据Spark(八十七):Spark-Submit 参数详解
大数据·分布式·spark