计算机毕业设计Python+Spark知识图谱课程推荐系统 课程预测系统 课程大数据 课程数据分析 课程大屏 mooc慕课推荐系统 大数据毕业设计

1 绪 论

1.1 课题研究背景

在线教育学习平台是学生用来进行校内或校外拓展课程学习的平台,平台需要具备在线视频观看,作业提交,形成性考核等功能。在学生学习的过程中,学校的管理者或负责教师需要了解学生的学习情况和学习状态,因此必须要通过学生的学习行为数据进行数据分析,将学生的学习情况直观的展现给用户,方便教师进行学生管理和评测。

现阶段在线教育学习平台,一般会提供两种方向,一种是对普通用户,社会上的各种人员都可以来学习这个课程,学习完以后拿到一些证书认证,另一种是面向是院校,比如说大学里的学生可以在线选一门课,选完这门课以后,通过这个在线教育学习平台,让学生去学习这门课,最终得到他的学习成绩,那么通过学习他可以拿到他自己的学分,不需要在线下来去进行课程学习,这是整个在线教育学习平台这里面提供的功能,那么学生在学习这门课程的过程中,那肯定会产生很多的这种学习的数据,就比如说学生观看视频观看了多长时间,什么时候来的这个平台这些相关的数据,那么基于这些数据,我们就需要进行数据分析。

通过分析的结果,可以了解学生学习情况,学习状态,根据这些内容,我们好去了解这门课程设置是不是有问题,学生在学习过程中会有哪些习惯和行为,根据这个反馈过来的数据进行灵活的调整,或者让老师重新去调整这个课程内容,或者去改变这一部分的学生学习方式,这是我们最终做这个数据分析的目的。

1.2 课题研究意义

本次课题主要通过使用ECharts图形可视化开发技术,从而在项目中反馈自己的学习成果,提升自己技术水平和能力,让自己在设计方面也能得到更多锻炼,思维模式得到扩展。通过在线教育平台的数据,利用所学知识去分析数据,得出学生在学习过程中学习情况,以及利用课程平台中的健康度和用户活跃度来反哺提升课程质量。

2相关技术介绍和分析

2.1 JAVA语言

 JAVA是一种跨平台的程序设计语言,它属于面向对象型,有着显著的优点。

2.2 Idea开发环境

 IDEA 全称IntelliJ IDEA,是java语言开发的集成环境,idea是目前最好的开发工具之一,尤其在代码只能助手、自动代码提示等方面是有突出成就的。

2.3 Hadoop生态圈技术

 HDFS: 一种分布式文件系统,提供对应用程序数据的高吞吐量访问。

MapReduce: 基于YARN的系统,用于并行处理大型数据集。

HBase: 可扩展的分布式数据库,支持大型表的结构化数据存储。

Sqoop: 采集RDBMS(关系型数据库)。

2.4 ECharts

 ECharts,一个功能强大的交互式图表和浏览器可视化库。

3系统调研

3.1经济可行性分析

系统使用大数据组件开源技术,组建单节点Hadoop集群,使用MapReduce数据分析,考虑到市面上大屏可视化系统需要收费,所以用ECharts技术实现数据可视化图表功能。

3.2技术可行性分析

通过servlet和json进行数据交互,以及CAS做单点登录和注销,调整好系统结构,可以很好实现页面数据传输和展示的功能

3.3系统性能可行性分析

     WEB端产品,性能主要基于服务端的响应,此处通过设置虚拟机内存、优化代码结构等手段,保证正确运行。

4概要设计

4.1功能设计

根据系统的需要,列出所需要的功能,与解决的方法,并以此为参考,设计数据库等后台内容。

4.1.1 登陆注册功能

用户通过浏览器访问后可以登录,没有注册的用户可以进行注册,然后将用户信息存入数据库中,通过Spring Security框架做登录拦截,并可以获取已登录用户登录名,点击注销可以实现用户退出登录。

4.1.2 数据预功能

将数据通过Sqoop导入Hadoop中的HDFS,使用MapReduce进行数据处理,并将处理好的数据,保存到HBase中。

4.1.3 每日登陆人数分析

读取HBase中登录数据,页面显示不同月份的登录人数比,并可以显示每月登录人数,可以切换不同的月份。

4.1.4 平均学习时长和学习行为次数分析

读取HBase中相关数据,页面显示不同日期对应的学习时长和学习次数。

4.1.5 每日活跃情况分析

柱状图显示每日活跃学生人数的统计分析,这里设定每日至少进行3次学习行为的用户为活跃用户

4.1.6 分时段学习人数分析

热力图展示学生在什么时间段爱学习,横坐标为小时,纵坐标为星期。

柱状图展示在不同时间段中用户登录人数。

4.2数据库表结构设计

表与功能相匹,设计时尽量减少冗余数据的存储,多考虑多表查询的可能与简单程度

4.3后台结构设计

主要使用servlet接受请求,MVC将代码分层。

4.4前台UI设计

JS使用AngularJS的双向数据绑定方便的操作,展示更多有用的信息,UI使用ECharts自带的图形效果显示。

5 系统运行示例与测试

5.1 系统测试概述

项目完成后,测试时保证系统稳定运行的关键所在,不同的点击事件向后台请求数据,前端接受数据,避免数据传输错误引起的界面不显示或报错问题以及界面的排版问题。

5.2 运行测试

进入到系统界面,依此进行试用

6 结 论

本章主要对本次设计进行总结,总结系统的优点和存在的不足,并且作出相应的改进等。

参考文献

致 谢

核心算法代码分享如下:

package com.sqlimport org.apache.spark.sql.SparkSession
import org.apache.spark.sql.types._
import org.junit.Testimport java.util.Propertiesclass MoocSpark2024_FixBug {val spark = SparkSession.builder().master("local[6]").appName("在线教育课程数据实时计算V1.0").getOrCreate()//课程数仓CSV 模式val ods_courses_Schema = StructType(List(StructField("kw", StringType),StructField("cid", StringType),StructField("url", StringType),StructField("title",StringType),StructField("img", StringType),StructField("tag", StringType),StructField("school",StringType),StructField("teacher", StringType),StructField("mans", IntegerType),StructField("brief", StringType),StructField("status", StringType),StructField("price", StringType),StructField("chapters", StringType),StructField("comments_score", FloatType),StructField("comments", StringType)))val ods_courses_Df = spark.read.option("header", "false").schema(ods_courses_Schema).csv("hdfs://192.168.227.166:9000/mooc2024/ods_courses/edu_course.csv")//网评数仓CSV 模式val ods_comments_Schema = StructType(List(StructField("kw", StringType),StructField("cid", StringType),StructField("title", StringType),StructField("nickname",StringType),StructField("ctime", StringType),StructField("csv_txt", StringType),StructField("ke",IntegerType),StructField("star", IntegerType),StructField("url2", StringType),StructField("sentiments", FloatType),StructField("province", StringType)))val ods_comments_Df = spark.read.option("header", "false").schema(ods_comments_Schema).csv("hdfs://192.168.227.166:9000/mooc2024/ods_comments/edu_comments.csv")@Testdef init(): Unit = {//school_province_score_Df.show()//ods_courses_Df.show()ods_comments_Df.show()//school_special_score_Df.show()//school_Df.show()//ruanke_rank_Df.show()//qs_world_Df.show()}//  ----剩余使用spark_sql完成
//    ---指标8:课程特色占比@Testdef tables08(): Unit = {ods_courses_Df.createOrReplaceTempView("ods_courses")val df2 = spark.sql("""select tag ,count(1) numfrom ods_coursesgroup by tag""")df2
//      .show(50).coalesce(1).write.mode("overwrite").option("driver", "com.mysql.cj.jdbc.Driver").option("user", "root").option("password", "123456").jdbc("jdbc:mysql://bigdata:3306/hive_mooc2024?useSSL=false","table08",new Properties())}// ---指标9:网络水军词云预警(黑名单)@Testdef tables09(): Unit = {ods_comments_Df.createOrReplaceTempView("ods_comments")val df2 = spark.sql("""select nickname,count(1) numfrom ods_commentswhere sentiments <0.5group by nicknameorder by num desclimit 20""")df2//      .show(50).coalesce(1).write.mode("overwrite").option("driver", "com.mysql.cj.jdbc.Driver").option("user", "root").option("password", "123456").jdbc("jdbc:mysql://bigdata:3306/hive_mooc2024?useSSL=false","table09",new Properties())}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/697606.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python | Leetcode Python题解之第87题扰乱字符串

题目&#xff1a; 题解&#xff1a; class Solution:def isScramble(self, s1: str, s2: str) -> bool:cachedef dfs(i1: int, i2: int, length: int) -> bool:"""第一个字符串从 i1 开始&#xff0c;第二个字符串从 i2 开始&#xff0c;子串的长度为 le…

百面算法工程师 | 正则优化函数——BN、LN、Dropout

本文给大家带来的百面算法工程师是正则优化函数&#xff0c;文章内总结了常见的提问问题&#xff0c;旨在为广大学子模拟出更贴合实际的面试问答场景。在这篇文章中&#xff0c;我们将总结一些BN、LN、Dropout的相关知识&#xff0c;并提供参考的回答及其理论基础&#xff0c;以…

git使用及github

文章目录 操作命令基本组成框架在开发中git分支的重要性 github的使用将本地仓库关联到远程仓库将远程仓库关联到本地和拉取指定分支、切换远程分支提交本地仓库到远程仓库修改分支名称 保存当前工作切换分支将别的分支修改转移到自己的分支远程删除分支后本地git branch -a依然…

Qt-FFmpeg开发-打开摄像头直接显示YUYV422图像(12)

Qt-FFmpeg开发-打开摄像头直接显示YUYV422图像&#x1f4c0; 文章目录 Qt-FFmpeg开发-打开摄像头直接显示YUYV422图像&#x1f4c0;1、概述&#x1f4f8;2、实现效果&#x1f4bd;3、主要代码&#x1f50d;4、完整源代码&#x1f4d1; 更多精彩内容&#x1f449;个人内容分类汇…

在cmd中,如何使用cd进入指定文件目录

在cmd中&#xff0c;如何使用cd进入指定文件目录 1.要进入的磁盘与当前磁盘一致 例如: cd C:\Program Files (x86)\Google\Chrome\Application 2.进入到其他磁盘&#xff0c; 例如 cd /d D:\JAVA\codes\01\1.4 或者下面的方式&#xff08;直接输入磁盘F&#xff1a;和文件名…

Android adb shell关于CPU核的命令

Android adb shell关于CPU核的命令 先使用命令&#xff1a; adb shell 进入控制台。 然后&#xff0c;直接在$后面输入下面命令&#xff0c;针对CPU的命令。 cat /proc/cpuinfo | grep ^processor | wc -l 查看当前手机的CPU是几核的。 cat sys/devices/system/cpu/online …

计算机组成原理(超详解!!) 第七节 中央处理器(下)

1.微程序控制器 微程序设计技术&#xff1a;利用软件方法来设计硬件的一门技术。 微程序控制器的基本思想&#xff1a; 仿照通常的解题程序的方法&#xff0c;把操作控制信号编成所谓的“微指令”&#xff0c;存放到一个只读存储器里。当机器运行时&#xff0c;一条又一条地…

解决finalshell无法连接,一直提示登陆密码

问题描述 在使用FinalShell连接配置虚拟机时&#xff0c;无法正常连接&#xff0c;一直提示输入登录密码&#xff0c;即使输入的密码是正确的。 切换到root 模式,输入密码 su root 此时需要输入root账户的密码&#xff0c;但是我们又不知道root的密码&#xff0c;怎么办&…

NSSCTF | [第五空间 2021]WebFTP

注意看这里的题目标签&#xff0c;目录扫描&#xff0c;.git泄露。那么这道题虽然打开是一个登录的界面&#xff0c;但是并不是我们熟悉的爆破和SQL注入。 但是可以在题目标签上看到目录扫描&#xff0c;我们就用dirsearch扫一扫看看 python dirsearch.py -u http://node4.ann…

【pouchdb-可视化工具 】

最近使用pouchdb&#xff0c;想找个其对应的可视化工具&#xff0c;可以对数据库进行操作。 找了好久才找到&#xff0c;网上有说先同步到couchdb&#xff0c;再用couchdb的可视化工具查看&#xff0c;其实没有那么麻烦&#xff0c;pouchdb的可视化工具其实藏在另外的pouchdb-…

【经典文献】光声立体成像的对极几何

文献标题&#xff1a;《Epipolar Geometry of Opti-Acoustic Stereo Imaging》作者列表&#xff1a;Shahriar Negahdaripour发表期刊&#xff1a;IEEE Transactions on Pattern Analysis and Machine Intelligence发表年份&#xff1a;2007DOI链接&#xff1a;10.1109/TPAMI.20…

20 分页:较小的表

目录 简单的解决方案&#xff1a;更大的页 混合方法&#xff1a;分页和分段 多级页表 详细的多级示例 超过两级 ​编辑地址转换过程&#xff1a;记住TLB 反向页表 将页表交换到磁盘 之前提到的一个问题&#xff1a;就是页表太大&#xff0c;假设一个 32 位地址空间&…