基于大数据的上海餐饮数据分析与可视化系统【python、Hadoop、spark、python毕设项目、python毕业设计、毕设、课设 附源码+数据集+文档】

28 阅读5分钟

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

@TOC

基于大数据的上海餐饮数据分析与可视化系统介绍

本系统全称为《基于大数据的上海餐饮数据分析与可视化系统》,是一个专注于城市餐饮行业数据价值挖掘的综合性平台。在技术架构上,系统后端核心采用了Hadoop分布式文件系统(HDFS)作为海量数据的存储基础,并利用Spark框架及其内置的Spark SQL组件,结合Pandas、NumPy等数据科学库,进行高效的分布式数据处理与深度分析。应用服务层支持Java和Python两种主流开发语言,分别提供了基于Spring Boot框架(集成Spring、SpringMVC、MyBatis)和Django框架的实现版本,为系统提供了稳定可靠的业务逻辑支撑。前端则采用现代化的Vue.js框架与ElementUI组件库构建用户交互界面,并深度集成了强大的Echarts图表库,将复杂的分析结果以直观、动态的图表形式呈现给用户。在功能模块方面,系统实现了全面的数据洞察能力,包括集成了核心指标的【数据大屏可视化】、洞察行业全貌的【市场宏观分析】、评估商户声誉的【质量口碑分析】、解析用户偏好的【消费行为分析】、展示商家区位特征的【地理空间分析】以及实现精准营销的【客群细分分析】。同时,系统也包含了完善的【用户信息】管理和【上海餐饮数据管理】功能,构成了一个从数据采集、处理、分析到最终可视化的完整闭环解决方案。

基于大数据的上海餐饮数据分析与可视化系统演示视频

演示视频

基于大数据的上海餐饮数据分析与可视化系统演示图片

地理空间分析.png

动态数据大屏.png

静态数据大屏.png

客群细分分析.png

市场宏观分析.png

消费行为分析.png

质量口碑分析.png

基于大数据的上海餐饮数据分析与可视化系统代码展示

from pyspark.sql import SparkSession, functions as F
from pyspark.sql.window import Window
spark = SparkSession.builder.appName("ShanghaiCateringAnalysis").master("local[*]").getOrCreate()
def process_market_macro_analysis(data_path='hdfs:///data/shanghai_restaurants.csv'):
    """
    市场宏观分析核心处理函数
    """
    df = spark.read.option("header", "true").option("inferSchema", "true").csv(data_path)
    total_restaurants = df.count()
    avg_stats_row = df.agg(
        F.round(F.avg("price"), 2).alias("average_price"),
        F.round(F.avg("taste_score"), 2).alias("average_taste"),
        F.round(F.avg("env_score"), 2).alias("average_environment"),
        F.round(F.avg("service_score"), 2).alias("average_service")
    ).first()
    region_distribution_df = df.groupBy("region").count().orderBy(F.col("count").desc())
    category_distribution_df = df.groupBy("category").count().orderBy(F.col("count").desc()).limit(10)
    region_distribution = [row.asDict() for row in region_distribution_df.collect()]
    category_distribution = [row.asDict() for row in category_distribution_df.collect()]
    result = {
        "total_restaurants": total_restaurants,
        "average_price": avg_stats_row["average_price"],
        "average_taste": avg_stats_row["average_taste"],
        "average_environment": avg_stats_row["average_environment"],
        "average_service": avg_stats_row["average_service"],
        "region_distribution": region_distribution,
        "category_distribution": category_distribution
    }
    return result
def process_quality_reputation_analysis(data_path='hdfs:///data/shanghai_restaurants.csv'):
    """
    质量口碑分析核心处理函数
    """
    df = spark.read.option("header", "true").option("inferSchema", "true").csv(data_path)
    df_with_overall_score = df.withColumn("overall_score", 
        F.round((F.col("taste_score") * 0.5 + F.col("env_score") * 0.25 + F.col("service_score") * 0.25), 2)
    )
    top_10_restaurants_df = df_with_overall_score.select("name", "region", "category", "overall_score", "price")\
        .orderBy(F.col("overall_score").desc(), F.col("price").asc())\
        .limit(10)
    bottom_10_restaurants_df = df_with_overall_score.select("name", "region", "category", "overall_score", "price")\
        .orderBy(F.col("overall_score").asc(), F.col("price").desc())\
        .limit(10)
    window_spec = Window.partitionBy("category").orderBy(F.col("overall_score").desc())
    category_champions_df = df_with_overall_score.withColumn("rank", F.rank().over(window_spec))\
        .filter(F.col("rank") == 1)\
        .select("category", "name", "overall_score")\
        .orderBy("category")
    top_10_list = [row.asDict() for row in top_10_restaurants_df.collect()]
    bottom_10_list = [row.asDict() for row in bottom_10_restaurants_df.collect()]
    category_champions_list = [row.asDict() for row in category_champions_df.collect()]
    result = {
        "top_10_restaurants": top_10_list,
        "bottom_10_restaurants": bottom_10_list,
        "category_champions": category_champions_list
    }
    return result
def process_consumer_behavior_analysis(data_path='hdfs:///data/shanghai_restaurants.csv'):
    """
    消费行为分析核心处理函数
    """
    df = spark.read.option("header", "true").option("inferSchema", "true").csv(data_path)
    df_with_price_range = df.withColumn("price_range",
        F.when(F.col("price") < 50, "50元以下")
        .when((F.col("price") >= 50) & (F.col("price") < 100), "50-100元")
        .when((F.col("price") >= 100) & (F.col("price") < 200), "100-200元")
        .when((F.col("price") >= 200) & (F.col("price") < 500), "200-500元")
        .otherwise("500元以上")
    )
    price_range_order = F.array(F.lit("50元以下"), F.lit("50-100元"), F.lit("100-200元"), F.lit("200-500元"), F.lit("500元以上"))
    price_range_distribution_df = df_with_price_range.groupBy("price_range")\
        .count()\
        .withColumn("order", F.array_position(price_range_order, F.col("price_range")))\
        .orderBy("order")\
        .select("price_range", "count")
    price_score_correlation_df = df_with_price_range.groupBy("price_range")\
        .agg(
            F.round(F.avg("taste_score"), 2).alias("avg_taste_score"),
            F.round(F.avg("env_score"), 2).alias("avg_env_score"),
            F.round(F.avg("service_score"), 2).alias("avg_service_score")
        )\
        .withColumn("order", F.array_position(price_range_order, F.col("price_range")))\
        .orderBy("order")\
        .select("price_range", "avg_taste_score", "avg_env_score", "avg_service_score")
    price_range_distribution = [row.asDict() for row in price_range_distribution_df.collect()]
    price_score_correlation = [row.asDict() for row in price_score_correlation_df.collect()]
    result = {
        "price_range_distribution": price_range_distribution,
        "price_score_correlation": price_score_correlation
    }
    return result

基于大数据的上海餐饮数据分析与可视化系统文档展示

文档.png

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