💖💖作者:计算机毕业设计江挽
💙💙个人简介:曾长期从事计算机专业培训教学,本人也热爱上课教学,语言擅长Java、微信小程序、Python、Golang、安卓Android等,开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。平常喜欢分享一些自己开发中遇到的问题的解决办法,也喜欢交流技术,大家有技术代码这一块的问题可以问我!
💛💛想说的话:感谢大家的关注与支持!
💜💜
网站实战项目
安卓/小程序实战项目
大数据实战项目
深度学习实战项目
目录
基于大数据的小红书达人领域数据分析可视化系统介绍
本系统是一套专门针对小红书达人数据进行深度挖掘的大数据分析平台,采用Hadoop+Spark分布式计算框架作为底层技术支撑,实现对海量达人数据的高效处理与分析。系统通过HDFS分布式文件系统存储达人的基础信息、内容数据、粉丝互动等多维度数据,利用Spark SQL进行数据清洗、转换和聚合计算,结合Pandas和NumPy进行统计分析,最终通过Django框架搭建Web服务,前端采用Vue+ElementUI+Echarts技术栈实现数据的可视化展示。系统核心功能涵盖达人特征分析模块,能够从粉丝量、互动率、内容质量等维度刻画达人画像;商业价值分析模块通过量化指标评估达人的变现潜力和合作价值;内容领域分析模块利用大数据技术对达人发布内容进行领域归类和趋势分析;潜力达人分析模块则通过多维度数据建模,筛选出具有成长潜力的新兴达人。整个系统架构清晰,大数据技术应用贯穿数据采集、存储、计算、分析全流程,为品牌方和MCN机构提供了一套完整的达人数据洞察工具,在毕业设计中既能体现大数据技术的实际应用能力,又具备明确的业务场景和实用价值。
基于大数据的小红书达人领域数据分析可视化系统演示视频
【数据分析】基于大数据的小红书达人领域数据分析可视化系统 | 大数据毕设实战项目 大数据选题推荐 Hadoop SPark java Python
基于大数据的小红书达人领域数据分析可视化系统演示图片








基于大数据的小红书达人领域数据分析可视化系统代码展示
from pyspark.sql import SparkSession
from pyspark.sql.functions import col, count, avg, sum, desc, when, lit
from pyspark.sql.types import StructType, StructField, StringType, IntegerType, DoubleType
import pandas as pd
import numpy as np
from django.http import JsonResponse
from django.views import View
spark = SparkSession.builder.appName("XiaohongshuInfluencerAnalysis").config("spark.sql.shuffle.partitions", "200").config("spark.executor.memory", "4g").getOrCreate()
class InfluencerFeatureAnalysis(View):
def post(self, request):
influencer_df = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/xiaohongshu_db").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "influencer_info").option("user", "root").option("password", "123456").load()
content_df = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/xiaohongshu_db").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "content_data").option("user", "root").option("password", "123456").load()
interaction_df = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/xiaohongshu_db").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "interaction_records").option("user", "root").option("password", "123456").load()
feature_df = influencer_df.join(content_df, influencer_df.influencer_id == content_df.influencer_id, "left").join(interaction_df, content_df.content_id == interaction_df.content_id, "left")
aggregated_features = feature_df.groupBy("influencer_df.influencer_id", "influencer_name", "fans_count").agg(count("content_df.content_id").alias("total_contents"),avg("interaction_df.like_count").alias("avg_likes"),avg("interaction_df.comment_count").alias("avg_comments"),avg("interaction_df.share_count").alias("avg_shares"),sum("interaction_df.like_count").alias("total_likes"))
aggregated_features = aggregated_features.withColumn("engagement_rate", (col("avg_likes") + col("avg_comments") * 2 + col("avg_shares") * 3) / col("fans_count") * 100)
aggregated_features = aggregated_features.withColumn("content_activity", when(col("total_contents") > 100, "高产").when(col("total_contents") > 50, "中产").otherwise("低产"))
aggregated_features = aggregated_features.withColumn("influence_level", when(col("fans_count") > 1000000, "头部").when(col("fans_count") > 100000, "腰部").when(col("fans_count") > 10000, "初级").otherwise("素人"))
pandas_df = aggregated_features.toPandas()
pandas_df['avg_likes'] = pandas_df['avg_likes'].fillna(0).round(2)
pandas_df['avg_comments'] = pandas_df['avg_comments'].fillna(0).round(2)
pandas_df['engagement_rate'] = pandas_df['engagement_rate'].fillna(0).round(4)
result_data = pandas_df.to_dict('records')
return JsonResponse({'code': 200, 'message': '达人特征分析完成', 'data': result_data})
class CommercialValueAnalysis(View):
def post(self, request):
influencer_df = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/xiaohongshu_db").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "influencer_info").option("user", "root").option("password", "123456").load()
content_df = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/xiaohongshu_db").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "content_data").option("user", "root").option("password", "123456").load()
interaction_df = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/xiaohongshu_db").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "interaction_records").option("user", "root").option("password", "123456").load()
commercial_df = influencer_df.join(content_df, influencer_df.influencer_id == content_df.influencer_id, "left").join(interaction_df, content_df.content_id == interaction_df.content_id, "left")
commercial_metrics = commercial_df.groupBy("influencer_df.influencer_id", "influencer_name", "fans_count", "category").agg(avg("interaction_df.like_count").alias("avg_like"),avg("interaction_df.comment_count").alias("avg_comment"),avg("interaction_df.collect_count").alias("avg_collect"),count("content_df.content_id").alias("content_count"))
commercial_metrics = commercial_metrics.withColumn("conversion_potential", (col("avg_collect") * 0.5 + col("avg_comment") * 0.3 + col("avg_like") * 0.2) / col("fans_count") * 10000)
commercial_metrics = commercial_metrics.withColumn("category_weight", when(col("category") == "美妆", 1.5).when(col("category") == "时尚", 1.4).when(col("category") == "美食", 1.3).when(col("category") == "旅游", 1.2).otherwise(1.0))
commercial_metrics = commercial_metrics.withColumn("commercial_value_score", col("conversion_potential") * col("category_weight") * (col("fans_count") / 10000))
commercial_metrics = commercial_metrics.withColumn("price_level", when(col("fans_count") > 1000000, "50000+").when(col("fans_count") > 500000, "20000-50000").when(col("fans_count") > 100000, "5000-20000").when(col("fans_count") > 10000, "1000-5000").otherwise("500以下"))
commercial_metrics = commercial_metrics.withColumn("cooperation_recommendation", when(col("commercial_value_score") > 1000, "强烈推荐").when(col("commercial_value_score") > 500, "推荐合作").when(col("commercial_value_score") > 200, "可考虑").otherwise("不建议"))
sorted_metrics = commercial_metrics.orderBy(desc("commercial_value_score"))
pandas_result = sorted_metrics.toPandas()
pandas_result['conversion_potential'] = pandas_result['conversion_potential'].fillna(0).round(2)
pandas_result['commercial_value_score'] = pandas_result['commercial_value_score'].fillna(0).round(2)
final_result = pandas_result.head(100).to_dict('records')
return JsonResponse({'code': 200, 'message': '商业价值分析完成', 'data': final_result})
class PotentialInfluencerAnalysis(View):
def post(self, request):
influencer_df = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/xiaohongshu_db").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "influencer_info").option("user", "root").option("password", "123456").load()
content_df = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/xiaohongshu_db").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "content_data").option("user", "root").option("password", "123456").load()
interaction_df = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/xiaohongshu_db").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "interaction_records").option("user", "root").option("password", "123456").load()
growth_df = spark.read.format("jdbc").option("url", "jdbc:mysql://localhost:3306/xiaohongshu_db").option("driver", "com.mysql.jdbc.Driver").option("dbtable", "growth_records").option("user", "root").option("password", "123456").load()
potential_df = influencer_df.join(growth_df, influencer_df.influencer_id == growth_df.influencer_id, "left").join(content_df, influencer_df.influencer_id == content_df.influencer_id, "left").join(interaction_df, content_df.content_id == interaction_df.content_id, "left")
potential_metrics = potential_df.groupBy("influencer_df.influencer_id", "influencer_name", "fans_count", "account_age_days").agg(avg("growth_df.monthly_fans_growth").alias("avg_monthly_growth"),avg("growth_df.monthly_content_growth").alias("avg_content_growth"),avg("interaction_df.like_count").alias("avg_likes"),avg("interaction_df.comment_count").alias("avg_comments"),count("content_df.content_id").alias("total_contents"))
potential_metrics = potential_metrics.filter((col("fans_count") < 100000) & (col("fans_count") > 5000))
potential_metrics = potential_metrics.withColumn("growth_rate", col("avg_monthly_growth") / col("fans_count") * 100)
potential_metrics = potential_metrics.withColumn("content_quality_score", (col("avg_likes") + col("avg_comments") * 2) / col("fans_count") * 1000)
potential_metrics = potential_metrics.withColumn("activity_score", col("avg_content_growth") * 10)
potential_metrics = potential_metrics.withColumn("account_maturity", when(col("account_age_days") < 180, 0.8).when(col("account_age_days") < 365, 1.0).otherwise(1.2))
potential_metrics = potential_metrics.withColumn("potential_index", (col("growth_rate") * 0.4 + col("content_quality_score") * 0.3 + col("activity_score") * 0.3) * col("account_maturity"))
potential_metrics = potential_metrics.withColumn("potential_level", when(col("potential_index") > 50, "极具潜力").when(col("potential_index") > 30, "潜力较大").when(col("potential_index") > 15, "有一定潜力").otherwise("潜力一般"))
potential_metrics = potential_metrics.filter(col("potential_index") > 15)
sorted_potential = potential_metrics.orderBy(desc("potential_index"))
pandas_potential = sorted_potential.toPandas()
pandas_potential['growth_rate'] = pandas_potential['growth_rate'].fillna(0).round(2)
pandas_potential['potential_index'] = pandas_potential['potential_index'].fillna(0).round(2)
pandas_potential['content_quality_score'] = pandas_potential['content_quality_score'].fillna(0).round(2)
result_list = pandas_potential.head(50).to_dict('records')
return JsonResponse({'code': 200, 'message': '潜力达人分析完成', 'data': result_list})
基于大数据的小红书达人领域数据分析可视化系统文档展示

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

被折叠的 条评论
为什么被折叠?



