简介: 实验基于所学的大数据处理知识,结合阿里云大数据相关产品,分组完成一个大数据分析项目,数据集可以使用开源数据集或自行爬取,最终完成一个完整的实验报告: 1、 能够使用阿里云大数据相关产品完成数据分析、数据建模与模型优化 2、 能够基于分析结构构建可视化门户或可视化大屏,分析和呈现不少于5个 3、 分析案例有实用价值并能够形成有效结论 4、 能够将开源技术与阿里云产品结合,综合利用提升开发效率,降低成本 5、 能够完成数据分析报告和结果展示

一、实验题目

基于所学的大数据处理知识,结合阿里云大数据相关产品,分组完成一个大数据分析项目,数据集可以使用开源数据集或自行爬取,最终完成一个完整的实验报告:
1、 能够使用阿里云大数据相关产品完成数据分析、数据建模与模型优化
2、 能够基于分析结构构建可视化门户或可视化大屏,分析和呈现不少于5个
3、 分析案例有实用价值并能够形成有效结论
4、 能够将开源技术与阿里云产品结合,综合利用提升开发效率,降低成本
5、 能够完成数据分析报告和结果展示

二、实验目的

灵活利用所学的阿里云大数据相关技术和大数据处理知识,综合完整地完成一个大数据分析项目。

三、实验难点

SQL语句有点难,机器学习预测不好调整。数据太多人工清洗有点难度。

四、实验过程(截图)

首先要观察数据集的各个属性,了解数据的梗概和特点。本次,我们研究的是B站弹幕文化,机器应用场景。
爬取数据的代码如下:

import csv
import timeimport requests
from bs4 import BeautifulSoup
url = "https://api.bilibili.com/x/v1/dm/list.so?oid=132084205"
csv_headers = ['弹幕内容','发送位置','发送时间','弹幕类型','弹幕字体大小','发送者id']
# print(response.content)
# divs = soup.find_all(_class = "threadlist_title pull_left j_th_tit ")
# for div in divs:
#     print(str(div))
#     print(div.a["href"])
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:39.0) Gecko/20100101 Firefox/39.0','Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8','Accept-Language': 'en-US,en;q=0.5','Accept-Encoding': 'gzip, deflate','Connection': 'close'
}
def get_page(url):# threadLock.acquire()# start_request = TrueNETWORK_STATUS = Trueresponse = requests.get(url,headers=headers,verify=True,timeout=20)# threadLock.release()if response.status_code == 200:# start_request = Falsereturn response.contentelse:print('error')def parse_page(html):soup = BeautifulSoup(html,'lxml')ds = soup.find_all('d')# print(len(ds))for d in ds:rows = []text = d.textp = str(d['p'])attrs = p.split(',')time_sec = int(attrs[0].split('.')[0])time_int = int(time_sec/60)time_float = time_sec%60mytime = str(time_int) + '分' + str(time_float) + '秒'# print(time)if int(attrs[1]) == 4:type = "底部弹幕"elif int(attrs[1]) == 5:type = "顶部弹幕"elif int(attrs[1]) == 6:type = "逆向弹幕"elif int(attrs[1]) == 7:type = "精准定位"elif int(attrs[1]) == 8:type = "高级弹幕"else:type = "普通弹幕"fint_size = attrs[2]timeArray = time.localtime(int(attrs[4]))date = time.strftime("%Y--%m--%d %H:%M:%S", timeArray)id = attrs[6]rows.append([text,mytime,date,type,fint_size,id])save_to_csv('b站弹幕(BV1He41147Rs).csv',rows)print(text + ' ' + mytime + ' ' + date + ' ' + type + ' ' + fint_size + ' ' + id)def save_to_csv(csv_name,rows):# is_exist = False# if os.path.exists(csv_name):#     is_exist = Truewith open(csv_name, 'a',encoding='utf-8',newline='')as f:# if is_exist is False:#     f_csv = csv.writer(f)#     f_csv.writerow(csv_headers)f_csv = csv.writer(f)f_csv.writerows(rows)def main():html = get_page(url)# print(html)parse_page(html)if __name__ == '__main__':with open('b站弹幕(BV1He41147Rs).csv', 'a',encoding='utf-8-sig',newline='')as f:# if is_exist is False:#     f_csv = csv.writer(f)#     f_csv.writerow(csv_headers)f_csv = csv.writer(f)f_csv.writerow(csv_headers)main()

将相关表和数据导入DataWorks,并进行相关部署。

各种弹幕的发送时间

通过统计各类弹幕发送时间来确定哪个时间段的内容更受观众的欢迎。

各个弹幕的大小
通过统计各个弹幕发送的不同大小可以看出更多的人会选择使用移动观看,移动端观看BILIBILI已经很普遍了

各个弹幕的发送位置
可以看出更多的人发的是普通弹幕,少数人会发送更加精准的顶部弹幕和底部弹幕。

机器学习建模及预测

混淆矩阵

精准率=tp/(tp+fp)=100/(10+100)=0.909
召回率=tp/(tp+fn)=100/(100+5)=0.95

五、 结论

通过实验,我们组发现更多的人还是选择在移动端观看视频,移动观看视频已经是人们的首选了。
其次我们发现人们更喜欢新兰CP和酒厂,因为在这个时间段发送的弹幕最多,因此我们可以认为在有这两个作为封面时,可以吸引更多的人观看视频,或者以这几个人作为周边可以卖的会更好。
最后我们发现,更多的人发送的弹幕是普通弹幕,而极少数人会选在固定的时间发送顶部弹幕或者底部弹幕,证明大多数人不会去特意调整弹幕位置。

作者:mavisliky

原文链接

本文为阿里云原创内容,未经允许不得转载。

基于pyspark 大数据分析_基于阿里云平台的大数据教学案例 —— B站弹幕数据分析...相关推荐

  1. 慕课《用Python玩转数据》之B站弹幕数据分析

    慕课<用Python玩转数据>之B站弹幕数据分析 1.源代码 # -*- coding: utf-8 -*- """ Created on Wed May 1 ...

  2. 襄阳教育云平台实名认证_襄阳教育云平台手机版(襄阳教学资源平台)V3.7.6 中文版...

    襄阳教育云平台手机版(襄阳教学资源平台)是一款拥有丰富教学资源的客户端应用.旨在确保更好体验平台资源及应用,利用襄阳教育云平台可以更好的辅助教师授课,同步课程高效教学,并且襄阳教育云平台让学生可以随时 ...

  3. python弹幕分析_《用python 玩转数据》项目——B站弹幕数据分析

    1. 背景 在视频网站上,一边看视频一边发弹幕已经是网友的习惯.在B站上有很多种类的视频,也聚集了各种爱好的网友.本项目,就是对B站弹幕数据进行分析.选取分析的对象是B站上点播量过1.4亿的一部剧&l ...

  4. 工业智能网关BL110应用之60:如何实现智能楼宇控制BACnet 接入阿里云平台

    COM口采集 楼宇控制BACnet的配置 工业智能网关一共有四个COM 接口, 以COM口采集楼宇控制BACnet MS/TP设备为例,COM口 485接口A+.B-分别对应楼宇控制 BACnet M ...

  5. RS485转以太网网关BL110之44:实现欧姆龙 PLC CJ/CS/CP 接入阿里云平台

    COM口采集欧姆龙 PLC CJ/CS/CP 的配置 RS485转以太网网关一共有四个COM 接口, 4个COM口的配置内容一样,COM1固定为RS232,COM2.COM3和COM4是RS232/R ...

  6. 阿里云IOT网关BL110应用之28:实现三菱 PLC FX3U 接入阿里云平台

    COM口采集三菱 PLC FX3U 的配置 工业智能网关一共有四个COM 接口, 4个COM口的配置内容一样,COM1固定为RS232,COM2.COM3和COM4是RS232/RS485可选串口(默 ...

  7. 从零开始,打造基于阿里IoT云平台的LoRa解决方案(3)_配置产品功能,将上传数据解析为阿里云平台数据格式

    本篇是 <从零开始,打造基于阿里IoT云平台的LoRa解决方案>系列教程的第3 篇,将为大家讲解:1-如何配置产品功能?2-如何将产品的上传数据解析为阿里云平台数据格式? 查看阿里物联网平 ...

  8. 基于STM32+FreeRtos+ESP8266+MQTT连接阿里云

    基于STM32+FreeRtos+DHT12+ESP8266+MQTT连接阿里云 1.概述 2.实现步骤 2.1.MQTT.fx模拟器与阿里云通信 2.2.STM32与阿里云通信 3. 搭建云平台 3 ...

  9. 【案例】“1GB1年1毛钱“——使用 Backup exec 基于阿里云OSS 实现企业数据异地备份 【服务器管理】【云备份】

    [案例]"1GB1年1毛钱"--使用 Backup exec 基于阿里云OSS 实现企业数据异地备份 [服务器管理][云备份] 1.使用环境 如图所示 资源 配置 备注 File ...

  10. 阿里云平台微信告警(基于收费平台)

    基于现在大多数人使用微信的众多性,并且发现当阿里云发生告警时,邮箱的报警数太多,(像本人zabbix有邮箱告警,zabbix分经典网络和专有网络的报警,还有物理机的告警,都是分开平台监控的.)所以想到 ...

最新文章

  1. linux后台执行命令:amp;与nohup的用法
  2. 我的世界服务器菜单制作,小白腐竹福[服务器菜单制作]极其详细!看了就会
  3. 浅析神经网络为什么能够无限逼近任意连续函数
  4. 高级查询(1.连接查询(对列的扩展)2.联合查询(对行的扩展)3.子查询)
  5. [数据模型] 数据表三种关联的概述
  6. 一张网络路由器与能源路由器对照表(2015年)
  7. s7200cpu224xp手册_S7-200 PLC DC224XP DC DC DC的接线图说明
  8. linux nand 驱动,Linux NAND FLASH驱动分析(一)
  9. 主板有电无法启动_电脑主板通电但是开不了机是什么原因?
  10. 2021AAPM大赛第一名技术报告Designing an Iterative Network for Fanbeam-CTwith Unknown Geometry 阅读笔记
  11. 黑马程序员——Java基础——网络编程1
  12. ML:机器学习模型的稳定性分析简介、常见的解决方法之详细攻略
  13. 大数据分布式计算开源框架Hadoop的介绍和运用
  14. 我的服务器被挖矿了,原因竟是。。。
  15. php excel 转数组函数,php读取Excel中内容到数组
  16. HTML日志查看器,如何在网页实时查看APP日志
  17. 在Kettle里使用时间戳实现变化数据捕获(CDC)
  18. 11-软件研制总结报告
  19. java.lang.IllegalArgumentException: Can not set int field *** to null value
  20. jetson nano 用opencv使用摄像头(CSI和USB)

热门文章

  1. OpenCV_(Laplacian Transform to find the edges)图像拉普拉斯变换查找边缘 图像识别
  2. 1036 跟奥巴马一起编程
  3. BZOJ 1933 Bookcase 书柜的尺寸
  4. blktrace 深度了解linux系统的IO运作
  5. matplotlib可视化学习笔记
  6. nginx 配合jersey+netty的奇怪问题
  7. KVC、谓词、单例设计模式
  8. 【事件驱动】【数码管识别】(C++多线程实现多幅图像的同步识别)
  9. 【OpenCV学习笔记】【函数学习】十一(读入图像﹑显示图像和保存图像)
  10. array(numpy) 的size 和Image(PIL) 的shape比较