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

基于大数据的健康饮食营养数据分析系统介绍

本系统是一套基于大数据技术架构的健康饮食营养数据分析系统,专为计算机专业毕业设计打造,核心采用Hadoop分布式存储框架和Spark大数据计算引擎作为底层技术支撑,实现海量营养数据的高效处理与深度分析。系统提供Python+Django和Java+SpringBoot两种后端技术栈可选方案,前端采用Vue+ElementUI+Echarts构建响应式交互界面,数据库使用MySQL进行结构化数据管理,整体技术架构涵盖Hadoop分布式文件系统HDFS、Spark SQL数据查询引擎、Pandas和NumPy科学计算库等主流大数据技术组件。功能模块包括系统首页、用户信息管理、健康饮食营养数据管理、大屏可视化展示、营养成分分析、烹饪方式分析、菜系饮食分析以及膳食复杂度分析等核心业务板块,通过Spark强大的分布式计算能力对海量饮食营养数据进行多维度统计分析,结合Echarts图表组件实现数据可视化呈现,帮助用户直观了解不同食材的营养构成、各类烹饪方式对营养成分的影响、八大菜系的饮食特征以及膳食搭配的复杂度评估,系统既满足毕业设计对大数据技术应用的要求,又具备实际应用价值,适合作为计算机专业学生掌握Hadoop生态、Spark计算框架及数据分析可视化技术的综合性实战项目。

基于大数据的健康饮食营养数据分析系统演示视频

基于大数据的健康饮食营养数据分析系统【python、Hadoop、spark、MySQL、python项目、大数据毕设选题、论文书写】【源码+论文+答辩】

基于大数据的健康饮食营养数据分析系统演示图片

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基于大数据的健康饮食营养数据分析系统代码展示

from pyspark.sql import SparkSession
from pyspark.sql.functions import col, count, avg, sum, when, round as spark_round, desc, row_number
from pyspark.sql.window import Window
import pandas as pd
from django.http import JsonResponse
from django.views import View
from .models import NutritionData
import json

spark = SparkSession.builder.appName("HealthDietNutritionAnalysis").master("local[*]").config("spark.sql.shuffle.partitions", "4").getOrCreate()

class NutritionComponentAnalysisView(View):
    def get(self, request):
        nutrition_data = NutritionData.objects.all().values('food_name', 'protein', 'fat', 'carbohydrate', 'vitamin_a', 'vitamin_c', 'calcium', 'iron', 'calories', 'category')
        df_pandas = pd.DataFrame(list(nutrition_data))
        df_spark = spark.createDataFrame(df_pandas)
        df_spark = df_spark.filter(col('protein').isNotNull() & col('fat').isNotNull() & col('carbohydrate').isNotNull())
        df_spark = df_spark.withColumn('total_macro', col('protein') + col('fat') + col('carbohydrate'))
        df_spark = df_spark.withColumn('protein_ratio', spark_round((col('protein') / col('total_macro')) * 100, 2))
        df_spark = df_spark.withColumn('fat_ratio', spark_round((col('fat') / col('total_macro')) * 100, 2))
        df_spark = df_spark.withColumn('carb_ratio', spark_round((col('carbohydrate') / col('total_macro')) * 100, 2))
        df_spark = df_spark.withColumn('nutrition_level', when(col('calories') > 300, '高热量').when(col('calories') > 150, '中热量').otherwise('低热量'))
        category_nutrition = df_spark.groupBy('category').agg(avg('protein').alias('avg_protein'),avg('fat').alias('avg_fat'),avg('carbohydrate').alias('avg_carb'),avg('calories').alias('avg_calories'),count('food_name').alias('food_count'))
        category_nutrition = category_nutrition.withColumn('avg_protein', spark_round(col('avg_protein'), 2))
        category_nutrition = category_nutrition.withColumn('avg_fat', spark_round(col('avg_fat'), 2))
        category_nutrition = category_nutrition.withColumn('avg_carb', spark_round(col('avg_carb'), 2))
        category_nutrition = category_nutrition.withColumn('avg_calories', spark_round(col('avg_calories'), 2))
        high_protein_foods = df_spark.filter(col('protein') > 20).select('food_name', 'protein', 'calories').orderBy(desc('protein')).limit(10)
        vitamin_analysis = df_spark.groupBy('category').agg(avg('vitamin_a').alias('avg_vit_a'),avg('vitamin_c').alias('avg_vit_c'),avg('calcium').alias('avg_calcium'),avg('iron').alias('avg_iron'))
        result_data = {'category_nutrition': category_nutrition.toPandas().to_dict('records'),'high_protein_foods': high_protein_foods.toPandas().to_dict('records'),'vitamin_analysis': vitamin_analysis.toPandas().to_dict('records')}
        return JsonResponse({'code': 200, 'message': '营养成分分析成功', 'data': result_data})

class CookingMethodAnalysisView(View):
    def get(self, request):
        nutrition_data = NutritionData.objects.all().values('food_name', 'cooking_method', 'protein', 'fat', 'calories', 'nutrition_retention_rate', 'cooking_time', 'difficulty_level')
        df_pandas = pd.DataFrame(list(nutrition_data))
        df_spark = spark.createDataFrame(df_pandas)
        df_spark = df_spark.filter(col('cooking_method').isNotNull() & col('nutrition_retention_rate').isNotNull())
        cooking_stats = df_spark.groupBy('cooking_method').agg(count('food_name').alias('food_count'),avg('calories').alias('avg_calories'),avg('fat').alias('avg_fat'),avg('nutrition_retention_rate').alias('avg_retention'),avg('cooking_time').alias('avg_time'))
        cooking_stats = cooking_stats.withColumn('avg_calories', spark_round(col('avg_calories'), 2))
        cooking_stats = cooking_stats.withColumn('avg_fat', spark_round(col('avg_fat'), 2))
        cooking_stats = cooking_stats.withColumn('avg_retention', spark_round(col('avg_retention'), 2))
        cooking_stats = cooking_stats.withColumn('avg_time', spark_round(col('avg_time'), 2))
        cooking_stats = cooking_stats.withColumn('health_score', spark_round((col('avg_retention') * 0.6 + (100 - col('avg_calories') / 5) * 0.4), 2))
        cooking_stats = cooking_stats.orderBy(desc('health_score'))
        df_spark = df_spark.withColumn('calorie_increase_ratio', when(col('cooking_method') == '油炸', col('calories') * 1.5).when(col('cooking_method') == '煎', col('calories') * 1.3).when(col('cooking_method') == '炒', col('calories') * 1.2).when(col('cooking_method') == '蒸', col('calories') * 1.0).otherwise(col('calories') * 1.1))
        calorie_impact = df_spark.groupBy('cooking_method').agg(avg('calorie_increase_ratio').alias('avg_calorie_impact'),avg('fat').alias('fat_content'))
        calorie_impact = calorie_impact.withColumn('avg_calorie_impact', spark_round(col('avg_calorie_impact'), 2))
        difficulty_distribution = df_spark.groupBy('cooking_method', 'difficulty_level').agg(count('food_name').alias('count'))
        optimal_methods = cooking_stats.filter((col('avg_retention') > 70) & (col('avg_calories') < 200)).select('cooking_method', 'health_score', 'avg_retention')
        result_data = {'cooking_stats': cooking_stats.toPandas().to_dict('records'),'calorie_impact': calorie_impact.toPandas().to_dict('records'),'difficulty_distribution': difficulty_distribution.toPandas().to_dict('records'),'optimal_methods': optimal_methods.toPandas().to_dict('records')}
        return JsonResponse({'code': 200, 'message': '烹饪方式分析完成', 'data': result_data})

class CuisineAnalysisView(View):
    def get(self, request):
        nutrition_data = NutritionData.objects.all().values('food_name', 'cuisine_type', 'protein', 'fat', 'carbohydrate', 'calories', 'spicy_level', 'sweetness_level', 'saltiness_level', 'taste_profile')
        df_pandas = pd.DataFrame(list(nutrition_data))
        df_spark = spark.createDataFrame(df_pandas)
        df_spark = df_spark.filter(col('cuisine_type').isNotNull())
        cuisine_nutrition = df_spark.groupBy('cuisine_type').agg(count('food_name').alias('dish_count'),avg('protein').alias('avg_protein'),avg('fat').alias('avg_fat'),avg('carbohydrate').alias('avg_carb'),avg('calories').alias('avg_calories'))
        cuisine_nutrition = cuisine_nutrition.withColumn('avg_protein', spark_round(col('avg_protein'), 2))
        cuisine_nutrition = cuisine_nutrition.withColumn('avg_fat', spark_round(col('avg_fat'), 2))
        cuisine_nutrition = cuisine_nutrition.withColumn('avg_carb', spark_round(col('avg_carb'), 2))
        cuisine_nutrition = cuisine_nutrition.withColumn('avg_calories', spark_round(col('avg_calories'), 2))
        cuisine_nutrition = cuisine_nutrition.withColumn('fat_level', when(col('avg_fat') > 30, '高脂').when(col('avg_fat') > 15, '中脂').otherwise('低脂'))
        taste_analysis = df_spark.groupBy('cuisine_type').agg(avg('spicy_level').alias('avg_spicy'),avg('sweetness_level').alias('avg_sweet'),avg('saltiness_level').alias('avg_salt'))
        taste_analysis = taste_analysis.withColumn('avg_spicy', spark_round(col('avg_spicy'), 2))
        taste_analysis = taste_analysis.withColumn('avg_sweet', spark_round(col('avg_sweet'), 2))
        taste_analysis = taste_analysis.withColumn('avg_salt', spark_round(col('avg_salt'), 2))
        taste_analysis = taste_analysis.withColumn('taste_intensity', spark_round((col('avg_spicy') + col('avg_sweet') + col('avg_salt')) / 3, 2))
        windowSpec = Window.partitionBy('cuisine_type').orderBy(desc('calories'))
        df_spark = df_spark.withColumn('rank', row_number().over(windowSpec))
        top_dishes_per_cuisine = df_spark.filter(col('rank') <= 5).select('cuisine_type', 'food_name', 'calories', 'fat')
        cuisine_taste_profile = df_spark.groupBy('cuisine_type', 'taste_profile').agg(count('food_name').alias('count'))
        healthy_cuisine_rank = cuisine_nutrition.withColumn('health_score', spark_round((col('avg_protein') * 2 - col('avg_fat') * 1.5 + col('avg_carb') * 0.5) / col('avg_calories') * 100, 2))
        healthy_cuisine_rank = healthy_cuisine_rank.orderBy(desc('health_score'))
        result_data = {'cuisine_nutrition': cuisine_nutrition.toPandas().to_dict('records'),'taste_analysis': taste_analysis.toPandas().to_dict('records'),'top_dishes_per_cuisine': top_dishes_per_cuisine.toPandas().to_dict('records'),'cuisine_taste_profile': cuisine_taste_profile.toPandas().to_dict('records'),'healthy_cuisine_rank': healthy_cuisine_rank.toPandas().to_dict('records')}
        return JsonResponse({'code': 200, 'message': '菜系饮食分析完成', 'data': result_data})

基于大数据的健康饮食营养数据分析系统文档展示

在这里插入图片描述

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

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐