基于Hive的天气情况大数据分析系统(通过hive进行大数据分析将分析的数据通过sqoop导入到mysql,通过Django基于mysql的数据做可视化(1)

在这里插入图片描述

基于mysql数据使用Django做数据可视化

from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
from django.shortcuts import render, redirect
from django.shortcuts import render
from pyecharts import options as opts
from pyecharts.charts import Line, Bar, Pie, Grid

Create your views here.

from django.shortcuts import render
from pyecharts.globals import ThemeType

from api.service.task_service import get_user, top_sunny_cities, monthly_max_temperature_difference,
top_cities_high_wind, top_rainy_cities, monthly_rainy_days, yearly_min_temperatures, daily_wind_speed,
daily_temperature_difference, register_user

def login_page(request):
if request.method == ‘POST’:
username = request.POST.get(‘username’)
password = request.POST.get(‘password’)
user = get_user(username,password)
if user is not None:
return redirect(‘home’)
else:
return render(request, ‘login.html’, {‘error_message’: ‘Invalid login credentials.’})

return render(request, ‘login.html’)

def register_view(request):

处理注册逻辑

if request.method == ‘GET’:
username = request.GET.get(‘username’)
password = request.GET.get(‘password’)
if username and password:
register_user(username,password)
return HttpResponse(“注册成功!”)
return render(request, ‘register.html’) # 使用你的注册模板路径

def home(request):
print(2)
return render(request, ‘home.html’)

def data_analysis(request, button_id):
return render(request, ‘data_analysis.html’, {‘button_id’: button_id})

def data_analysis(request, button_id):

根据按钮 ID 进行不同的处理

if button_id == 1:
x,y = top_sunny_cities()
line_chart = (
Line()
.add_xaxis(xaxis_data=x)
.add_yaxis(series_name=“晴天个数”, y_axis=y)
.set_global_opts(title_opts=opts.TitleOpts(title=“一年中每个城市晴天个数的top10”))
)
chart_html = line_chart.render_embed()
button_name = “折线图”
elif button_id == 2:
x,y = monthly_max_temperature_difference()
line_chart = (
Line()
.add_xaxis(xaxis_data=x)
.add_yaxis(series_name=“温差值”, y_axis=y)
.set_global_opts(title_opts=opts.TitleOpts(title=“北京一年中每个月的温差变化”))
)
chart_html = line_chart.render_embed()
button_name = “折线图”
elif button_id == 3:
x,y = top_cities_high_wind()
bar_chart = (
Bar()
.add_xaxis(xaxis_data=x)
.add_yaxis(series_name=“3级风速次数”,y_axis=y)
.set_global_opts(title_opts=opts.TitleOpts(title=“出现3级以上风速的top10个城市”))
)
chart_html = bar_chart.render_embed()
button_name = “条形图”
elif button_id == 4:
x, y = top_rainy_cities()
bar_chart = (
Bar()
.add_xaxis(xaxis_data=x)
.add_yaxis(series_name=“雨天数量”, y_axis=y)
.set_global_opts(title_opts=opts.TitleOpts(title=“多雨城市的top10”))
)
chart_html = bar_chart.render_embed()
button_name = “条形图”

elif button_id == 5:
x, y = monthly_rainy_days()
pie = Pie()
pie.add(“”, list(zip(x, y)))
pie.set_global_opts(title_opts={“text”: “杭州每月雨天变化”, “subtext”: “2022年”},
legend_opts=opts.LegendOpts(orient=“vertical”, pos_right=“right”, pos_top=“center”))
chart_html = pie.render_embed()
button_name = “饼图”

elif button_id == 6:
x, y = yearly_min_temperatures()
line_chart = (
Line()
.add_xaxis(xaxis_data=x)
.add_yaxis(series_name=“温度”, y_axis=y)
.set_global_opts(title_opts=opts.TitleOpts(title=“城市一年中最低的温度top10”))
)
chart_html = line_chart.render_embed()
button_name = “折线图”

elif button_id == 7:
x,y=daily_temperature_difference()

创建饼图

pie = (
Pie(init_opts=opts.InitOpts(width=“800px”, height=“600px”))
.add(
series_name=“南京10月份1~10号温差变化”,
data_pair=list(zip(x, y)),
radius=[“40%”, “75%”], # 设置内外半径,实现空心效果
label_opts=opts.LabelOpts(is_show=True, position=“inside”),
)
.set_global_opts(title_opts=opts.TitleOpts(title=“南京10月份1~10号温差变化”),
legend_opts=opts.LegendOpts(orient=“vertical”, pos_right=“right”, pos_top=“center”),
)
.set_series_opts( # 设置系列选项,调整 is_show 阈值
label_opts=opts.LabelOpts(is_show=True)
)
)
chart_html = pie.render_embed()
button_name = “饼图”

elif button_id == 8:
x,y=daily_wind_speed()

bar_chart = (
Bar()
.add_xaxis(xaxis_data=x)
.add_yaxis(series_name=“风速级别”, y_axis=y)
.set_global_opts(title_opts=opts.TitleOpts(title=“南京10月份每天的风速变化”))
)
chart_html = bar_chart.render_embed()
button_name = “条形图”

return render(request, ‘data_analysis.html’, {‘chart_html’: chart_html, ‘button_name’: button_name})

展示Django项目运行结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如有遇到问题可以找小编沟通交流哦。另外小编帮忙辅导大课作业,学生毕设等。不限于python,java,大数据等。
在这里插入图片描述

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数大数据工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年大数据全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上大数据开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
img

以上大数据开发知识点,真正体系化!**

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注大数据获取)
[外链图片转存中…(img-zF8UxfnS-1712559334076)]

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 毕业设计-基于Hadoop平台开发的视频收视率分析源码+项目说明.zip ​ 本项目分为四个模块,分别为爬虫模块、离线数据分析模块、公共基础模块、web展示模块。首先用WebMagic爬取的B站视频数据作为数据源,构建以离线分析为基础囊括大数据主要离线技术的架构进行数据分析。针对系统的处理速度与实际生产环境的所需性,对分布式架构进行了研究。在搭建技术架构的必要基础之上采用了分布式的项目部署方式,保证在生产环境下的实际生产项目的容灾性和可扩展性,提高了系统的应用性和效率。最终完成了基于大数据技术的视频收视率分析设计与实现。具体的内容有: (1) 采用三台虚拟机进行分布式环境的搭建,模拟生产环境 (2) 使用WebMagic爬虫技术爬取B站视频数据信息,将采集到的数据导入kafka中,使用Flume框架技术从kafka采集数据到Hdfs并将数据导入Hive中,然后使用Hue操作Hive进行离线数据分析,最后利用sqoop导入mysql,整个流程采用azkaban进行脚本定时调度,达到系统需要具备的视频收视分析功能 (3) 大数据分析展示系统采用企业中现今流行的SpringBoot+Mybatis框架进行系统的后台服务层的搭建,系统首先需要具备用户登录注册等基础功能,前台采用Bootstrap+Echarts技术实现数据展示模块。 ## 爬虫模块 video-log-spider:进行数据爬取,爬取B站视频信息 ## 离线数据分析模块 video-log-analysis:对数据进行预处理,用Hive进行离线分析 ## 公共基础模块 video-log-common:封装全局异常处理和常用工具 ## web展示模块 video-log-web:用于离线分析后的web展示,已完成的功能有每日采集概况、总采集概况、各分类播放排行、总播放排行、活跃用户分析、总收藏排行、总弹幕排行 【备注】 1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载使用体验! 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值