作者计算机毕业设计小途个人简介曾长期从事计算机专业培训教学本人也热爱上课教学语言擅长Java、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法也喜欢交流技术大家有技术代码这一块的问题可以问我想说的话感谢大家的关注与支持网站实战项目安卓/小程序实战项目大数据实战项目深度学习实战项目目录动漫评分和人气数据可视化与分析系统介绍动漫评分和人气数据可视化与分析系统演示视频动漫评分和人气数据可视化与分析系统演示图片动漫评分和人气数据可视化与分析系统代码展示动漫评分和人气数据可视化与分析系统文档展示动漫评分和人气数据可视化与分析系统介绍本系统《基于大数据的动漫评分和人气数据可视化与分析》面向动漫评分、人气等数据做集中整理、统计和可视化展示后端采用PythonDjango版本大数据部分用Hadoop与Spark借助HDFS存放原始数据用Spark、Spark SQL完成数据清洗、聚合和指标计算Pandas、NumPy辅助做数值处理MySQL保存用户、动漫信息与部分分析结果前端用Vue、ElementUI、Echarts、HTML、CSS、JavaScript和jQuery搭建页面与图表。功能上包含系统首页、大屏可视化、用户、动漫信息、评分分布分析、人气热度分析、类型对比分析、年代趋势分析、体量结构分析、价值分群分析、个人信息和修改密码。用户登录后可以查看动漫基础信息也能在大屏上看到评分分布、热度排行、类型差异、年代变化、体量结构和价值分群等图表后台可维护动漫数据与用户数据。系统把原本分散的评分、人气、类型、年代等字段按分析主题组织起来用Spark做批量统计再由前端图表呈现帮助使用者更直观地观察动漫评分和人气之间的关系。整体实现以毕业设计可落地为目标不追求复杂架构重点把大数据处理流程和可视化分析功能串起来。动漫评分和人气数据可视化与分析系统演示视频项目演示视频动漫评分和人气数据可视化与分析系统演示图片动漫评分和人气数据可视化与分析系统代码展示sparkSparkSession.builder.appName(AnimeRatingPopularityAnalysis).master(local[*]).config(spark.sql.shuffle.partitions,4).getOrCreate()defrating_distribution(request):dfspark.read.format(jdbc).option(url,jdbc:mysql://localhost:3306/anime_db).option(dbtable,anime_info).option(user,root).option(password,123456).option(driver,com.mysql.cj.jdbc.Driver).load()df.createOrReplaceTempView(anime_rating)resultspark.sql(SELECT CAST(FLOOR(rating) AS INT) AS score_floor, COUNT(*) AS anime_count, ROUND(COUNT(*) * 100.0 / SUM(COUNT(*)) OVER(), 2) AS ratio FROM anime_rating WHERE rating IS NOT NULL GROUP BY CAST(FLOOR(rating) AS INT) ORDER BY score_floor)rowsresult.collect()labels[]counts[]ratios[]forrowinrows:startrow[score_floor]labels.append(str(start)-str(start1))counts.append(row[anime_count])ratios.append(row[ratio])totalsum(counts)max_countmax(counts)ifcountselse0max_rangelabels[counts.index(max_count)]ifcountselseavg_ratingdf.selectExpr(AVG(rating)).first()[0]returnJsonResponse({labels:labels,counts:counts,ratios:ratios,total:total,maxRange:max_range,avgRating:round(avg_rating,2)ifavg_ratingelse0,msg:评分分布分析完成})defpopularity_heat(request):dfspark.read.format(jdbc).option(url,jdbc:mysql://localhost:3306/anime_db).option(dbtable,anime_info).option(user,root).option(password,123456).option(driver,com.mysql.cj.jdbc.Driver).load()df.createOrReplaceTempView(anime_popularity)resultspark.sql(SELECT type_name, COUNT(*) AS anime_count, ROUND(AVG(popularity), 2) AS avg_popularity, ROUND(AVG(rating), 2) AS avg_rating, SUM(popularity) AS total_heat FROM anime_popularity WHERE popularity IS NOT NULL GROUP BY type_name ORDER BY total_heat DESC)rowsresult.collect()top_list[]heat_values[row[total_heat]forrowinrows]min_heatmin(heat_values)ifheat_valueselse0max_heatmax(heat_values)ifheat_valueselse0forrowinrows[:10]:heatrow[total_heat]ifmax_heatmin_heat:score100.0else:scoreround((heat-min_heat)*100.0/(max_heat-min_heat),2)top_list.append({type:row[type_name],count:row[anime_count],avgPopularity:row[avg_popularity],avgRating:row[avg_rating],totalHeat:heat,heatScore:score})returnJsonResponse({top10:top_list,typeCount:len(rows),minHeat:min_heat,maxHeat:max_heat,msg:人气热度分析完成})deftype_compare(request):dfspark.read.format(jdbc).option(url,jdbc:mysql://localhost:3306/anime_db).option(dbtable,anime_info).option(user,root).option(password,123456).option(driver,com.mysql.cj.jdbc.Driver).load()df.createOrReplaceTempView(anime_type)resultspark.sql(SELECT type_name, COUNT(*) AS total, ROUND(AVG(rating), 2) AS avg_rating, ROUND(AVG(popularity), 2) AS avg_popularity, ROUND(SUM(CASE WHEN rating 8 THEN 1 ELSE 0 END) * 100.0 / COUNT(*), 2) AS high_rate_ratio FROM anime_type WHERE type_name IS NOT NULL GROUP BY type_name HAVING COUNT(*) 5 ORDER BY avg_rating DESC, avg_popularity DESC)rowsresult.collect()labels[]avg_ratings[]avg_popularities[]high_ratios[]totals[]forrowinrows:labels.append(row[type_name])avg_ratings.append(row[avg_rating])avg_popularities.append(row[avg_popularity])high_ratios.append(row[high_rate_ratio])totals.append(row[total])best_typelabels[0]iflabelselsebest_ratingavg_ratings[0]ifavg_ratingselse0returnJsonResponse({labels:labels,avgRatings:avg_ratings,avgPopularities:avg_popularities,highRatios:high_ratios,totals:totals,bestType:best_type,bestRating:best_rating,msg:类型对比分析完成})动漫评分和人气数据可视化与分析系统文档展示作者计算机毕业设计小途个人简介曾长期从事计算机专业培训教学本人也热爱上课教学语言擅长Java、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法也喜欢交流技术大家有技术代码这一块的问题可以问我想说的话感谢大家的关注与支持网站实战项目安卓/小程序实战项目大数据实战项目深度学习实战项目
