【有源码】基于Hadoop+Spark的起点小说网大数据可视化分析系统-基于Python大数据生态的网络文学数据挖掘与可视化系统

注意:该项目只展示部分功能,如需了解,文末咨询即可。

本文目录

  • [1 开发环境](#1 开发环境)
  • [2 系统设计](#2 系统设计)
  • [3 系统展示](#3 系统展示)
    • [3.1 功能展示视频](#3.1 功能展示视频)
    • [3.2 大屏页面](#3.2 大屏页面)
    • [3.3 分析页面](#3.3 分析页面)
  • [4 更多推荐](#4 更多推荐)
  • [5 部分功能代码](#5 部分功能代码)

1 开发环境

发语言:python

采用技术:Spark、Hadoop、Django、Vue、Echarts等技术框架

数据库:MySQL

开发环境:PyCharm

2 系统设计

随着数字阅读产业蓬勃发展,网络文学平台积累了海量作品数据,但传统分析手段难以挖掘其深层价值。起点小说网作为国内头部文学平台,其内容生态、作者行为与用户偏好数据蕴含丰富的商业洞察,却面临着数据规模庞大、维度复杂、实时性要求高等挑战。本项目针对单一数据集15个核心字段,构建基于Python、Spark、Hadoop、Vue、Echarts与MySQL的端到端大数据分析系统,旨在通过分布式计算架构处理千万级数据,实现从原始文本清洗到多维可视化呈现的完整链路。系统通过量化分析小说类别分布、作者创作能力、作品热度质量等六大维度,不仅为平台优化内容策略、作者扶持机制、商业化变现提供数据支撑,也为读者提供选书决策参考,推动网络文学产业从经验驱动向数据驱动转型,释放大数据在内容创作与运营中的战略价值。

基于Spark的起点小说网大数据可视化分析系统

功能模块设计

紧扣数据特征与业务诉求,构建六大分析体系:

1)小说类别分布分析

模块涵盖大类别统计、子类别热度排行、类别质量对比、完结率与VIP占比分析,利用二级分类体系识别爆款赛道;

2)作者创作能力分析

模块聚焦作者产量、平均质量、跨类别创作与签约率,通过重复值挖掘高产优质作者,构建作者价值评估模型;

3)小说热度与质量分析

模块解析推荐数分布、字数相关性、周推荐占比及VIP作品质量对比,量化动态关系,区分经典长尾与新兴热门;

4)内容文本特征分析

模块研究标题长度、简介长度分布,并执行关键词提取与情感分析,探索文本特征与推荐数的关联;

5)平台商业化分析

模块评估VIP占比趋势、签约作品质量差异及类别商业化潜力,识别高商业价值作品与免费转VIP潜力股;

6)用户偏好与趋势分析

模块捕捉热门类别变迁、用户阅读偏好长度及连载关注度,通过周推荐数波动洞察市场趋势。各模块输出独立的CSV结果文件,支撑可视化看板实现下钻分析与交叉验证,确保每个功能点均具备明确的业务含义与论文撰写价值。

3 系统展示

3.1 功能展示视频

基于Hadoop+Spark的起点小说网大数据可视化分析系统 !!!请点击这里查看功能演示!!!

3.2 大屏页面


3.3 分析页面




4 更多推荐

计算机专业毕业设计新风向,2026年大数据 + AI前沿60个毕设选题全解析,涵盖Hadoop、Spark、机器学习、AI等类型
计算机专业毕业设计选题深度剖析,掌握这些技巧,让你的选题轻松通过,文章附35个优质选题助你顺利通过开题!
【避坑必看】26届计算机毕业设计选题雷区大全,这些毕设题目千万别选!选题雷区深度解析
紧跟风口!2026计算机毕设新赛道:精选三大热门领域下的创新选题, 拒绝平庸!毕设技术亮点+功能创新,双管齐下
纯分享!2026届计算机毕业设计选题全攻略(选题+技术栈+创新点+避坑),这80个题目覆盖所有方向,计算机毕设选题大全收藏
计算机专业毕业设计选题深度剖析,掌握这些技巧,让你的选题轻松通过,文章附35个优质选题助你顺利通过开题!

5 部分功能代码

python 复制代码
def preprocess_data_analysis():
    """
    数据预处理核心函数
    1. 从HDFS加载bookInfo.csv数据
    2. 处理count字段的"万"单位转换为数值
    3. 清洗空值和异常数据
    4. 将处理结果保存至HDFS标准目录
    """
    # 从项目dataset目录读取原始数据,使用绝对路径
    raw_df = spark.read.csv(
        "file:///absolute/path/to/project/dataset/bookInfo.csv",
        header=True,
        inferSchema=True,
        encoding="utf-8"
    )

    # UDF:将字数字符串(如"62.97万")转换为整型(629700)
    def convert_count(count_str):
        if not count_str or count_str == "未知":
            return 0
        match = re.match(r"(\d+\.?\d*)万", str(count_str))
        if match:
            return int(float(match.group(1)) * 10000)
        return 0

    convert_count_udf = udf(convert_count, IntegerType())

    # 数据清洗与转换
    processed_df = raw_df \
        .withColumn("word_count", convert_count_udf(col("count"))) \
        .withColumn("total_recommend", when(col("total_recommend").isNull(), 0)
                    .otherwise(col("total_recommend").cast(IntegerType()))) \
        .withColumn("total_week_recommend", when(col("total_week_recommend").isNull(), 0)
                    .otherwise(col("total_week_recommend").cast(IntegerType()))) \
        .withColumn("is_vip", when(col("is_vip").isNull(), "未知").otherwise(col("is_vip"))) \
        .withColumn("is_lianzai", when(col("is_lianzai").isNull(), "未知").otherwise(col("is_lianzai"))) \
        .filter(col("word_count") > 0) \
        .filter(col("total_recommend") >= 0)

    # 写入HDFS标准目录(先删除旧目录避免冲突)
    hdfs_path = "hdfs://namenode:9000/qidian/processed_data"
    processed_df.write.mode("overwrite").parquet(hdfs_path)
    print(f"预处理完成,数据已写入: {hdfs_path}")
    return processed_df


def novel_class_distribution_analysis(df):
    """
    小说类别分布分析核心函数
    基于class_type字段统计大类别分布,计算平均推荐数、完结率、VIP占比
    输出结果用于可视化展示类别结构
    """
    result_df = df.groupBy("class_type") \
        .agg(
            count("*").alias("novel_count"),
            round(avg("total_recommend"), 2).alias("avg_recommend"),
            round(avg("word_count"), 2).alias("avg_word_count"),
            round(count(when(col("is_lianzai") == "完本", True)) / count("*") * 100, 2).alias("completion_rate"),
            round(count(when(col("is_vip") == "VIP", True)) / count("*") * 100, 2).alias("vip_ratio")
        ) \
        .orderBy(col("novel_count").desc())

    # 转换为Pandas并输出CSV(文件名不含数字)
    result_df.toPandas().to_csv("/output/class_distribution_analysis.csv", index=False, encoding="utf-8")
    print("类别分布分析完成,结果已保存")
    return result_df


def author_creation_ability_analysis(df):
    """
    作者创作能力分析核心函数
    统计作者产量、平均质量、跨类别创作情况
    识别高产优质作者,为平台签约策略提供依据
    """
    # 计算每位作者的创作指标
    author_metrics_df = df.groupBy("author_name") \
        .agg(
            count("*").alias("works_count"),
            round(avg("total_recommend"), 2).alias("avg_recommend"),
            round(avg("word_count"), 2).alias("avg_word_count"),
            countDistinct("class_type").alias("cross_class_count"),
            round(count(when(col("is_qianyue") == "签约", True)) / count("*") * 100, 2).alias("sign_rate")
        ) \
        .filter(col("works_count") >= 2) \
        .orderBy(col("works_count").desc())

    author_metrics_df.toPandas().to_csv("/output/author_ability_analysis.csv", index=False, encoding="utf-8")
    print("作者能力分析完成,结果已保存")
    return author_metrics_df

源码项目、定制开发、文档报告、PPT、代码答疑

希望和大家多多交流 ↓↓↓↓↓

相关推荐
洞见新研社2 小时前
家庭机器人,从科幻到日常的二十年突围战
大数据·人工智能·机器人
中杯可乐多加冰3 小时前
基于网易CodeWave智能开发平台构建宝可梦图鉴
深度学习·低代码·ai·数据分析·数据采集·无代码·网易codewave征文
大叔_爱编程3 小时前
基于Python的历届奥运会数据可视化分析系统-django+spider
python·django·毕业设计·源码·课程设计·spider·奥运会数据可视化
Q_Q19632884754 小时前
python+django/flask基于协同过滤算法的理财产品推荐系统
spring boot·python·django·flask·node.js·php
高洁014 小时前
面向强化学习的状态空间建模:RSSM的介绍和PyTorch实现(3)
人工智能·python·深度学习·神经网络·transformer
筑梦之人4 小时前
Spark-3.5.7文档2 - RDD 编程指南
大数据·分布式·spark
aloha_7894 小时前
测试开发工程师面经准备(sxf)
java·python·leetcode·压力测试
Jonathan Star5 小时前
MediaPipe 在Python中实现人体运动识别,最常用且高效的方案是结合**姿态估计**(提取人体关键点)和**动作分类**(识别具体运动)
开发语言·python·分类
山顶听风5 小时前
分页条初始化
python