Spark RDD编程:大学成绩分析
需积分: 50 42 浏览量
更新于2024-09-01
2
收藏 642KB DOC 举报
"Spark实验5涉及RDD编程,主要任务是对一个包含大学计算机系成绩的数据集data1.txt进行分析。数据集中的每一行记录了一个学生的姓名、所选课程和成绩。实验要求实现以下功能:计算学生总数、课程总数、Tom同学的平均成绩、每个学生的选课门数、DataBase课程的选课人数以及所有课程的平均分。实验通过在Spark Shell中运行Scala代码来完成。"
在Spark中,RDD(Resilient Distributed Datasets)是其核心数据结构,它是弹性分布式数据集,能够并行处理大量数据。在这个实验中,首先通过`sc.textFile()`方法读取数据文件,并对数据进行一系列的转换和操作。
(1)计算学生总数:
使用`map()`函数将每行数据分割成字段,提取出学生姓名,然后使用`distinct()`去除重复,最后用`count()`统计不重复的学生数量。
(2)计算课程总数:
同样使用`map()`获取每行数据的课程名,然后应用`distinct()`和`count()`来得到课程总数。
(3)计算Tom同学的总成绩平均分:
首先使用`filter()`找出所有Tom的成绩记录,接着使用`map()`提取成绩和计数,通过`reduceByKey()`对Tom的所有成绩进行求和与计数,最后计算平均分。
(4)计算每名同学的选修课程门数:
利用`map()`提取学生姓名和课程名,`reduceByKey()`合并相同学生的所有课程,计算每个学生选修的课程门数。
(5)计算DataBase课程的选修人数:
通过`filter()`筛选出所有DataBase课程的记录,然后用`count()`得到选修人数。
(6)计算各门课程的平均分:
将每条记录的课程名和成绩提取出来,使用`reduceByKey()`对每个课程的所有成绩进行求和与计数,然后计算平均分。
(7)使用累加器计算选修DataBase课程的人数:
累加器在Spark中是一种可以跨节点共享和更新的变量。可以创建一个累加器,每当遇到DataBase课程时,累加器的值就加一,从而得到选修该课程的总人数。
这个实验不仅展示了Spark RDD的基本操作,如`map()`, `filter()`, `reduceByKey()`, `distinct()`, `count()`, 还演示了如何使用累加器来处理全局计数问题。通过这种方式,Spark能够高效地并行处理大量数据,实现分布式计算。
2017-10-19 上传
2022-07-15 上传
2023-12-20 上传
2021-12-15 上传
2019-08-19 上传
2019-05-27 上传
2022-12-25 上传
2021-11-05 上传
Improssible
- 粉丝: 0
- 资源: 6
最新资源
- NIST REFPROP问题反馈与解决方案存储库
- 掌握LeetCode习题的系统开源答案
- ctop:实现汉字按首字母拼音分类排序的PHP工具
- 微信小程序课程学习——投资融资类产品说明
- Matlab犯罪模拟器开发:探索《当蛮力失败》犯罪惩罚模型
- Java网上招聘系统实战项目源码及部署教程
- OneSky APIPHP5库:PHP5.1及以上版本的API集成
- 实时监控MySQL导入进度的bash脚本技巧
- 使用MATLAB开发交流电压脉冲生成控制系统
- ESP32安全OTA更新:原生API与WebSocket加密传输
- Sonic-Sharp: 基于《刺猬索尼克》的开源C#游戏引擎
- Java文章发布系统源码及部署教程
- CQUPT Python课程代码资源完整分享
- 易语言实现获取目录尺寸的Scripting.FileSystemObject对象方法
- Excel宾果卡生成器:自定义和打印多张卡片
- 使用HALCON实现图像二维码自动读取与解码