还在手写SQL统计?隔壁已用Spark SQL分析《世界五百强》甩你三条街

39 阅读4分钟

💖💖作者:计算机编程小咖 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目

@TOC

世界五百强企业数据分析与可视化系统系统介绍

本系统《基于大数据的世界五百强企业数据分析与可视化系统》面向大四计算机专业毕业设计场景,以Hadoop HDFS为分布式存储底座,Spark与Spark SQL为核心计算引擎,Python/Java双栈实现,后端选取Django/Spring Boot快速搭建RESTful接口,前端基于Vue+ElementUI+Echarts完成交互与图表渲染;通过Pandas、NumPy在Jupyter中完成数据清洗与特征构造,亿级企业原始明细经Spark并行处理后落入MySQL,支撑首页仪表盘、五百强企业信息检索、企业规模多维度对比、地理分布热力图、特殊群体聚类画像、行业分布动态玫瑰图以及五百强企业信息大屏七大功能模块,用户可在个人中心查看操作日志并在修改密码页完成安全更新,全流程代码、数据集、部署脚本与二次开发文档完整开源,帮助学生在真实TB级商业数据上体验大数据采集、存储、计算、分析与可视化的完整闭环,从而高效完成高质量毕业设计。

世界五百强企业数据分析与可视化系统系统演示视频

视频演示

世界五百强企业数据分析与可视化系统系统演示图片

地理分布分析.png

登陆界面.png

企业规模分析.png

数据大屏上.png

数据大屏下.png

特殊群体分析.png

五百强企业信息.png

行业分布分析.png

用户管理.png

世界五百强企业数据分析与可视化系统系统代码展示

# 企业规模分析 —— Spark SQL 批量聚合
spark = SparkSession.builder.appName("scale_analysis").getOrCreate()
df = spark.read.format("csv").option("header", "true").load("hdfs:///data/fortune500.csv")
df = df.withColumn("revenue", col("revenue").cast("double")) \
       .withColumn("employees", col("employees").cast("int"))
scale_df = df.groupBy("industry") \
             .agg(
                 percentile_approx("revenue", 0.5).alias("median_revenue"),
                 avg("employees").alias("avg_employees"),
                 count("*").alias("company_cnt")
             ) \
             .orderBy(desc("median_revenue"))
scale_df.write.mode("overwrite").jdbc(
    url="jdbc:mysql://localhost:3306/fortune500",
    table="scale_stats",
    properties={"user": "root", "password": "123456", "driver": "com.mysql.cj.jdbc.Driver"}
)

# 地理分布分析 —— MapReduce 统计各洲企业数量
from pyspark import SparkContext
sc = SparkContext.getOrCreate()
lines = sc.textFile("hdfs:///data/fortune500.csv")
header = lines.first()
data = lines.filter(lambda row: row != header).map(lambda x: x.split(","))
region_cnt = data.map(lambda x: (x[3], 1)) \
                 .reduceByKey(lambda a, b: a + b) \
                 .sortBy(lambda x: x[1], ascending=False)
for region, cnt in region_cnt.collect():
    print(region, cnt)

# 五百强企业信息大屏 —— Django 生成实时 JSON 供 Echarts
from django.http import JsonResponse
from django.db import connection
def bigscreen_api(request):
    with connection.cursor() as cursor:
        cursor.execute("""
            SELECT industry,
                   AVG(revenue) AS avg_revenue,
                   AVG(profit)  AS avg_profit
            FROM fortune500_company
            GROUP BY industry
            ORDER BY avg_revenue DESC
            LIMIT 10
        """)
        rows = cursor.fetchall()
    payload = [
        {"name": r[0], "value": [round(r[1], 2), round(r[2], 2)]}
        for r in rows
    ]
    return JsonResponse(payload, safe=False)

世界五百强企业数据分析与可视化系统系统文档展示

文档.png

💖💖作者:计算机编程小咖 💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我! 💛💛想说的话:感谢大家的关注与支持! 💜💜 网站实战项目 安卓/小程序实战项目 大数据实战项目 深度学习实战项目