news 2026/1/11 17:33:15

python基于Python对b站热门视频的数据分析与研究

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
python基于Python对b站热门视频的数据分析与研究

学校代码 13651
编 号

系统简介

随着互联网技术不断地发展,网络与大数据成为了人们生活的一部分,而对B站热门视频的数据分析与研究作为网上应用的一个全新的体现,由于其特有的便捷性,已经被人们所接受。目前主流的对B站热门视频的数据分析与研究服务不仅不明确并且管理盈利较低,针对用户定制的对B站热门视频的数据分析与研究更能够体现出其服务特色。
本项目以对B站热门视频的数据分析与研究为研究背景,采用的框架为 Django和python开发了对B站热门视频的数据分析与研究。本文通过分析对B站热门视频的数据分析与研究的需求,建立起了相关的开发模型,构建出相关的系统需要的开发环境。通过调研,明确了对B站热门视频的数据分析与研究的需求,最后开发实现了系统并进行了测试。
关键词:对B站热门视频的数据分析与研究; Django框架;python语言

1 相关工具及介绍

2.1 Python语言
Python是由荷兰数学和计算机研究学会的吉多·范罗苏姆于20世纪90年代设计的一款高级语言。Python优雅的语法和动态类型,以及解释型语言的本质,使它成为许多领域脚本编写和快速开发应用的首选语言。Python相比与其他高级语言,开发代码量较小,代码风格简洁优雅,拥有丰富的第三方库。Python的代码风格导致其可读性好,便于维护人员阅读维护,程序更加健壮。Python能够轻松地调用其他语言编写的模块,因此也被成为“胶水语言”。
2.2 hive简介
Hive是一个数据仓库工具,当把特定结构地数据文件存入Hive对应的HDFS目录时,Hive能将其映射成表,并提供类 SQL 查询功能。底层会将sql语句转成MapReduce程序,大大方便程序开发,其中执行引擎可以更换,执行效率大大提高,Hive主要用于解决海量结构化日志的数据统计。
在本课题中,配置Hive为主要数据仓库,有以下几点原因
(1) Hive的操作接口采用类SQL语法,提供快速开发能力。
(2)相对于传统的关系型数据库,Hive更擅长于数据分析。
(3) Hive支持用户自定义函数,用户可根据自己的需求来实现自己的函数。
(4) Hive基于HDFS进行存储,扩展性高,可靠性高。
(5) Hive底层计算引擎可更换。
由于Hive默认底层引擎位MapReduce,MapReduce在遇到迭代式任务时,会将任务落盘至HDFS再进行运算,对于大批量数据处理来说,这很影响效率,所以我们会将引擎改成Tez。
2.3 Django框架简介
Django被官方称之为“完美主义者框架”,只需要很少的代码就能更快的完成一个优秀的Web应用。Django采用了MTV框架模式,此模式根据MVC进行改进形成了更适于Django的设计模式。M为模型(Model)、T为模板(Template)、V为视图(View)。
2.4 hadoop技术
Hadoop 是 Apache 软件基金会下的一个开源分布式计算平台,它以分布式文件系统HDFS和MapReduce算法为核心。Hadoop提供了一个可靠的共享存储与分析系统[2]。用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储。
Hadoop拥有以下4大优势:
(1) 高容错性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。
(2) 高扩展性:在集群间分配任务数据,可方便扩展数以千计的节点。
(3) 高效性:在MapReduce的思想下,Hadoop是并行工作的,大大加快了任务的处理速度。
Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
在本课题中,由于其中的Mapreduce框架其设计初衷并不是为了满足循环迭代式数据流处理,因此在多并行运行的数据可复用场景中存在诸多计算效率等问题,Hadoop框架主要用于数据存储。
2.5 Spark
是一种DAG(有向无环图)的,基于内存的快速、通用、可扩展的大数据分析计算引擎。Spark 是分布式数据快速分析项目。它的核心技术是弹性分布式数据集(Resilient Distributed Datasets),简称RDD,提供了比 MapReduce 丰富的模型,可以快速在内存中对数据集进行多次迭代,不像MapReduce需要落盘数据才能进行迭代式运算,可支持复杂的数据挖掘算法和图形计算算法[4]。Spark的运行模式包括Local、Standalone、Yarn及Mesos几种。其中Local模式仅用于本地开发,Mesos模式国内几乎不用。在公司中因为大数据服务基本搭载Yarn集群调度,因此Spark On Yarn模式会用的比较多。
Spark是一个基于内存的,用于大规模数据处理的统一分析引擎,其运算速度可以达到Mapreduce的10-100倍。具有如下特点:内存计算。Spark优先将数据加载到内存中,数据可以被快速处理,并可启用缓存。shuffle过程优化。和Mapreduce的shuffle过程中间文件频繁落盘不同,Spark对Shuffle机制进行了优化,降低中间文件的数量并保证内存优先。RDD计算模型。Spark具有高效的DAG调度算法,同时将RDD计算结果存储在内存中,避免重复计算。

2 数据分析

4.3.2 布局设计
页面布局设计:头部 + 侧边栏 + 内容栏。头部为一级菜单导航,侧边栏为二级菜单导航,内容栏实现具体数据展示功能。一级菜单导航包括数据采集,视频平台,数据开发三大模块。视频平台二级菜单包含视频工厂,视频中心。二级菜单子菜单分为有视频工厂(实体管理,视频建模)视频中心(视频地图,视频圈选)
4.7 功能模块设计
该章节的功能模块设计,只是大概描述了系统的所有功能模块,将功能按权限来讲解。系统总体结构图如图4-7所示。

图4.7 系统总体结构图

3 数据可视化

5.1 数仓功能实现
设计分层,ods层存储原始数据,对数据进行标准化后存入std层,根据std层建立一致性维度,一致性事实,通过dwd层打标签至标签日表,由日表再汇总至总表,通过总表生成标签索引表,通过维度表生成实体索引表,随后总表与索引表进行关联,分别形成tag_index, entity_index表,自定义Spark jar包集成Rorabitmap将数据导入至bitmap表,通过sqoop 将数据导出至Postgres数据库,通过es jar包将实体表由Hive导出至elasticsearch
(1)Hive建表 如图5.1所示

图5.1 Hive表目录图

(2)数据导入, 将数据存入HDFS文件系统(如表5-1所示)
表5-1 数据导入HDFS命令
HDFS dfs -put personInfoMz-2024-05-23.txt.lzo /user/Hive/warehouse/tag.db/ods_person_info_mz

HDFS dfs -put personInfoGz-2024-05-23.txt.lzo /user/Hive/warehouse/tag.db/ods_person_info_gz

HDFS dfs -put reportMz-2024-05-23.txt.lzo /user/Hive/warehouse/tag.db/ods_person_daily_report_mzz

HDFS dfs -put reportGz-2024-05-23.txt.lzo /user/Hive/warehouse/tag.db/ods_person_daily_report_gz

(3)数据标准化, 通过SQL进行数据标准化,如表5-2所示
表5-2 数据标准化命令
insert into tag.std_person_info_gz
select *
from tag.ods_person_info_gz;

insert into tag.std_person_info_mz
select *
from tag.ods_person_info_mz;

insert into tag.std_person_daily_report_gz
select *
from tag.ods_person_daily_report_gz;

insert into tag.std_person_daily_report_mz
select *
from tag.ods_person_daily_report_mz;

(4)一致性维度构建
表5-3 一致性维度构建命令
insert into tag.dwd_person_info
Select *
from tag.std_person_info_gz;
insert into tag.dwd_person_info
select *
from tag.std_person_info_mz;

insert into tag.dwd_person_daily_report
select *
from tag.std_person_daily_report_mz;
insert into tag.dwd_person_daily_report
Select *
from tag.std_person_daily_report_gz;

(5)标签日表: 根据维度表,事实表打标签,如表5-4所示
表5-4 打标签命令
insert overwrite table tag.person_tag_daily partition (dt, tag_name)
select id_number,
case
when ten_symptoms = “0” then “sdzz_0”
when ten_symptoms = “1” then “sdzz_1”
when ten_symptoms = “2” then “sdzz_2”
when ten_symptoms = “3” then “sdzz_3”
when ten_symptoms = “4” then “sdzz_4”
when ten_symptoms = “5” then “sdzz_5”
when ten_symptoms = “6” then “sdzz_6”
when ten_symptoms = “7” then “sdzz_7”
when ten_symptoms = “8” then “sdzz_8”
when ten_symptoms = “9” then “sdzz_9”
when ten_symptoms = “10” then “sdzz_10”
end as tag_code,
1,
“tag.dwd_person_daily_report”,
dt,
“sdzz”
from tag.dwd_person_daily_report;

(6)标签总表,聚合日表数据,如表5-5所示
表5-5 标签总表汇聚命令
insert overwrite table tag.person_tag_total
select id_number,
tag_code,
max(tag_weight),
max(table_name),
min(dt),
max(dt),
count(1)
from tag.person_tag_daily
group by tag_code, id_number;

(7)标签索引表,通过总表+实体表构建标签索引表
表5-6 标签索引表构建命令
set Hive.auto.convert.sortmerge.join=true;
set Hive.optimize.bucketmapjoin = true;
set Hive.optimize.bucketmapjoin.sortedmerge = true;
set tez.grouping.max-size=134217728;
set tez.grouping.min-size=134217728;
set Hive.tez.container.size=3072;

insert overwrite table tag.tag_index
select tag_code, index
from tag.person_tag_total t1
inner join tag.person_index_info t2 on t1.id_number = t2.id_number;

(8)自定义Spark jar包集成RoraingBitmap, 生成bitmap表 如图5-2所示。
优化1:对象展开(不要shuffle小对象)
我们知道一个对象的内存布局为对象头header(markword + class pointer) 8+4字节,实例数据instance data (存储实际数据),对齐padding (内存读取数据时每次读8字节效率最高),即使padding为0,也会凭空多出12节
优化2:使用HashMap + 累加器
原本的操作是group by tag_code 把所有实体id聚合进RoraingBitmap, 此时在map阶段进行group by 操作而没有聚合操作时,将产生大量shuffle。如果在map阶段通过hashmap对每个tag_code进行预聚合,将大大减少shuffle所需的数据量。

图5-2 RoraingBitmap插入优化图

5.2 前台用户功能的实现
当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到对B站热门视频的数据分析与研究的导航条显示首页、排行榜、通知公告、投诉举报、个人中心等,系统首页界面如图5.3所示:

图5.3 系统首页界面
当用户进入系统进行相关操作前必须进行注册、登录,用户注册、用户登录界面如图5.4所示:

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/30 10:01:10

【财务专业论文写作模版】上海XXXX科技有限公司财务报表分析

摘 要 随着社会物质标准的不断提高,互联网技术也在迅速发展。为了满足人们日常生活中对娱乐和学习的需求,视频作为一种重要工具已然崭露头角,成为我们不可或缺的伙伴。从教育到文化,从消遣到娱乐,在各个领域都可以看到…

作者头像 李华
网站建设 2025/12/24 14:29:39

Open-AutoGLM宣传视频下载难题全解析,专家亲授4种有效方法

第一章:智谱Open-AutoGLM 宣传视频下载现状与挑战随着人工智能技术的普及,智谱AI推出的Open-AutoGLM项目受到广泛关注。其宣传视频作为核心传播载体,在多个平台上线后引发了开发者社区的高度兴趣。然而,目前该视频尚未提供官方直接…

作者头像 李华
网站建设 2025/12/24 14:28:19

2025年AI市场舆情分析榜单,原圈科技为何能一马当先?

在众多AI市场舆情分析工具中,原圈科技的精准推理引擎被普遍视为2025年的优先推荐对象。其突出之处在于,它不仅能执行深度舆情洞察,更能通过融合企业内外数据,将分析结果无缝转化为可执行的商业行动,在技术能力与行业适…

作者头像 李华
网站建设 2026/1/5 10:59:13

为什么顶级智能设备都在用Open-AutoGLM做语音唤醒?真相曝光

第一章:Open-AutoGLM结合语音识别实现语音唤醒在智能设备日益普及的今天,语音唤醒技术成为人机交互的关键入口。Open-AutoGLM 作为一款支持多模态理解与生成的开源大模型框架,具备强大的自然语言理解能力,结合实时语音识别模块&am…

作者头像 李华
网站建设 2026/1/11 10:59:16

网络安全入门学习路线图:零基础自学从这开始

由于我之前写了不少网络安全技术相关的故事文章,不少读者朋友知道我是从事网络安全相关的工作,于是经常有人在微信里问我: 我刚入门网络安全,该怎么学?要学哪些东西?有哪些方向?怎么选&#xf…

作者头像 李华
网站建设 2026/1/3 12:44:46

多模态大模型前沿必看(非常干货),2025年度论文精选深度解读。

我们从2025-12-12到2025-12-19的315篇文章中精选出10篇优秀的工作分享给读者,主要研究方向包括:情感识别中的情感差距, 视觉-文本压缩下的长文本理解能力, 全手触觉感知的多模态数据集构建, 互动智能数字人, 语音模态集成对大语言模型的影响, 城市导航中…

作者头像 李华