Hive练习项目统计各种TOP的实战(详细)

该博客介绍了如何使用Hive进行硅谷影音视频网站的数据分析,包括统计视频观看数Top10、视频类别热度Top10、视频观看数最高20个视频的类别分布、视频观看数Top50的类别排序、每个类别视频热度和观看数Top10,以及上传视频最多的用户及其视频观看次数。通过Hive SQL实现各类指标的计算和排序,为业务提供数据支持。
摘要由CSDN通过智能技术生成

 Hive 实战

    1. 需求描述

统计硅谷影音视频网站的常规指标,各种 TopN 指标:

-- 统计视频观看数 Top10

-- 统计视频类别热度 Top10

-- 统计出视频观看数最高的 20 个视频的所属类别以及类别包含 Top20 视频的个数

-- 统计视频观看数 Top50 所关联视频的所属类别排序

-- 统计每个类别中的视频热度 Top10,以 Music 为例

-- 统计每个类别视频观看数 Top10

-- 统计上传视频最多的用户 Top10 以及他们上传的视频观看次数在前 20 的视频

    1. 数据结构

1)视频表

视频表

字段

备注

详细描述

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 个

2)用户表

用户表

字段

备注

字段类型

uploader

上传者用户名

string

videos

上传视频数

int

friends

朋友数量

int

    1. 准备工作
      1. 准备表

1)需要准备的表

创建原始数据表:gulivideo_ori,gulivideo_user_ori, 创建最终表:gulivideo_orc,gulivideo_user_orc

2)创建原始数据表:

(1)gulivideo_ori

(2)创建原始数据表: gulivideo_user_ori

  1. 业务分析
    1. 统计视频观看数 Top10

思路:使用 order by 按照 views 字段做一个全局排序即可,同时我们设置只显示前 10

条。

最终代码:

 

    1. 统计视频类别热度 Top10

     

      1. 统计出视频观看数最高的 20 个视频的所属类别以及类别包含
  1. Top20 视频的个数

    思路:

    (1)先找到观看数最高的 20 个视频所属条目的所有信息,降序排列

    (2)把这 20 条信息中的 category 分裂出来(列转行)

    (3)最后查询视频分类名称和该分类下有多少个 Top20 的视频最终代码:

     

     

      1. 统计视频观看数 Top50 所关联视频的所属类别排序
  2. 代码:

     

      1. 统计每个类别中的视频热度 Top10,以 Music 为例
  3. 思路:

     

      1. 统计每个类别视频观看数 Top10
  4. 最终代码

     

     

      1. 统计上传视频最多的用户Top10 以及他们上传的视频观看次数在前 20 的视频
  5. 思路:

    (1)求出上传视频最多的 10 个用户

    (2)关联 gulivideo_orc 表,求出这 10 个用户上传的所有的视频,按照观看数取前 20

    最终代码:

     

     

     数据和代码

     

     

     

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西皮树下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值