0


基于 MySQL + Spark + Echarts + SpringBoot的豆瓣电影数据可视化项目

以下是一篇关于该项目的 blog,并附上部分关键代码:


基于 Spark + MySQL + Spring Boot + Echarts 的豆瓣电影大数据分析可视化项目

在当今大数据时代,数据分析和可视化对于深入理解数据背后的信息至关重要。今天,我要向大家介绍一个令人兴奋的项目——基于 Spark + MySQL + Spring Boot + Echarts 的豆瓣电影大数据分析可视化项目。

一、项目背景

豆瓣电影是一个拥有丰富电影信息的平台,对于电影爱好者、研究者和从业者来说,分析豆瓣电影数据可以获得有价值的洞察。本项目旨在通过爬取豆瓣电影数据,进行深入分析,并以直观的可视化方式呈现这些数据,帮助用户更好地理解豆瓣电影的各种特征和趋势。

二、项目流程

(一)爬虫部分

  1. 运行 getip.py 文件获取代理 IP 池。在使用前需删除 proxy.txt(存储爬取到的所有代理 IP)和 valid.txt(存储可用代理 IP)。

以下是

getip.py

的部分代码示例:

import requests
from lxml import etree
import random

defget_ip(url):
    headers ={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    response = requests.get(url, headers=headers)
    html = etree.HTML(response.text)# 根据实际网页结构提取 IP 和端口号
    ip = html.xpath('//tr/td[2]/text()')[0]
    port = html.xpath('//tr/td[3]/text()')[0]return ip +':'+ port
  1. 运行 GetData.py,从网页爬取所需内容,并初步保存到 ur.txt。其中,爬取的 URL 可根据需求进行调整,如 https://movie.douban.com/j/chart/top_list?type=11&interval_id=85%3A75&action=&start=,这里的 85%3A75 表示爬取评分在前 75%到 85%区间的内容,可根据实际需求自行修改。
  2. 运行 clear.py 进行数据处理,并将结果保存到 data.csv
  3. 修改 upload.py 中的 Hadoop 集群配置信息,运行该文件将 data.csv 上传到 Hadoop 集群。

(二)数据分析部分

七个数据分析文件都需要运行,注意以下操作:

  1. 在每个文件的开头几行,有以下代码需要根据实际路径进行修改:
System.setProperty("HADOOP_HOME", "C:\\Users\\Administrator\\Desktop\\大数据豆瓣电影数据分析与可视化\\数据分析\\SparkMovies\\apache-hadoop-3.1.3-winutils-master");
System.setProperty("hadoop.home.dir", "C:\\Users\\Administrator\\Desktop\\大数据豆瓣电影数据分析与可视化\\数据分析\\SparkMovies\\apache-hadoop-3.1.3-winutils-master");
System.load("C:\\Users\\Administrator\\Desktop\\大数据豆瓣电影数据分析与可视化\\数据分析\\SparkMovies\\apache-hadoop-3.1.3-winutils-master\\bin\\hadoop.dll");
  1. 文件中还涉及 Hadoop 集群配置和 MySQL 配置,需根据实际情况进行修改。MySQL 的数据库需手动创建,数据表的 SQL 文件为 part1~7.sql

以下是一个数据分析文件的示例代码结构:

from pyspark.sql import SparkSession
from pyspark.sql.functions import*

spark = SparkSession.builder.appName("Analysis").getOrCreate()# 读取数据
df = spark.read.csv("path_to_data.csv", header=True, inferSchema=True)# 数据分析操作
aggregated_df = df.groupBy("column_name").agg(sum("another_column"))# 写入 MySQL
aggregated_df.write.format("jdbc") \
   .option("url","jdbc:mysql://localhost:3306/database_name") \
   .option("dbtable","table_name") \
   .option("user","username") \
   .option("password","password") \
   .mode("append") \
   .save()

(三)数据可视化部分(结合 Spring Boot 和 Echarts)

  1. 修改 src/main/resources/application.yml 文件中的 MySQL 配置。完整的表生成语句以及数据文件为 part1~7 完整.sql
  2. 在 Spring Boot 项目中进行配置和开发,将数据从 MySQL 数据库中读取出来,并通过后端接口提供给前端。以下是一个 Spring Boot 控制器的示例代码:
@RestController@RequestMapping("/api")publicclassDataController{@AutowiredprivateDataService dataService;@GetMapping("/data")publicList<DataModel>getData(){return dataService.getDataFromDatabase();}}
  1. 在前端页面中使用 Echarts 库,根据后端提供的数据绘制各种可视化图表,如不同年份上映电影数、电影类型分析、电影类型平均评分、演员平均评分、不同年份电影平均评分、不同评分出现次数等。

以下是一个使用 Echarts 的前端代码示例:

<!DOCTYPEhtml><html><head><metacharset="utf-8"><title>Echarts Demo</title><!-- 引入 Echarts 文件 --><scriptsrc="https://cdn.jsdelivr.net/npm/[email protected]/dist/echarts.min.js"></script></head><body><!-- 为图表准备一个 DOM 容器 --><divid="chart"style="width: 600px;height:400px;"></div><script>// 基于准备好的 DOM,初始化 Echarts 实例var myChart = echarts.init(document.getElementById('chart'));// 使用 Ajax 获取后端数据
        $.ajax({url:'/api/data',type:'GET',success:function(data){// 指定图表的配置项和数据var option ={title:{text:'Data Visualization'},tooltip:{},xAxis:{data: data.map(item=> item.xValue)},yAxis:{},series:[{name:'Data',type:'bar',data: data.map(item=> item.yValue)}]};// 使用刚指定的配置项和数据显示图表
                myChart.setOption(option);}});</script></body></html>

三、技术栈

  1. MySQL:用于数据存储,方便后续的数据分析和查询。
  2. Spark:进行高效的大规模数据分析处理,能够快速处理爬取到的豆瓣电影数据。
  3. Echarts:实现数据的可视化展示,通过直观的图表呈现豆瓣电影数据的特征和趋势。
  4. Spring Boot:构建后端服务,提供数据接口,实现前后端分离的开发模式。

四、项目成果

  1. 通过爬虫获取了豆瓣电影的相关数据,并进行了有效的数据处理和存储。
  2. 利用 Spark 对数据进行分析,挖掘出有价值的信息和趋势。
  3. 使用 Spring Boot 和 Echarts 搭建了一个数据可视化平台,用户可以通过浏览器直观地查看豆瓣电影数据的各种可视化图表,深入了解豆瓣电影的特点和发展趋势。在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

五、总结与展望

本项目成功实现了基于 MySQL + Spark + Echarts + Spring Boot 的豆瓣电影数据可视化,为电影爱好者、研究者和从业者提供了有价值的数据分析和可视化工具。未来,可以进一步扩展数据来源和分析维度,提高数据的准确性和完整性,同时优化可视化效果,提供更加丰富和交互性强的用户体验。还可以考虑添加更多的功能模块,如用户登录、数据分享等,使项目更加完善和实用。

如果你对这个项目感兴趣,欢迎前往项目下载地址:https://github.com/gongsunyanming/MoviesAnalysis 进行下载和探索。

标签: mysql spark echarts

本文转载自: https://blog.csdn.net/yacrow/article/details/141816194
版权归原作者 yacrow 所有, 如有侵权,请联系我们删除。

“基于 MySQL + Spark + Echarts + SpringBoot的豆瓣电影数据可视化项目”的评论:

还没有评论