1、 需求描述
本次实验需要使用Spark的RDD基本操作及键值对操作解决以下问题:
一、分析某大学计算机系的成绩数据集data.txt(该数据每行包括:姓名,科目,成绩 三项数据 某项数据以“,”隔开)并解决以下问题:
(1)该系总共有多少学生;
(2)该系共开设了多少门课程;
(3)Tom同学的总成绩平均分是多少;
(4)求每名同学的选修的课程门数;
(5)该系DataBase课程共有多少人选修;
(6)各门课程的平均分是多少;
(7)使用累加器计算共有多少人选了DataBase这门课。
二、对于两个输入文件A和B,编写Spark独立应用程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新文件C。提供文件名字(A.txt、B.txt)格式:“编号” + 空格 + “数据”;
三、编写spark独立应用程序分析班级学生某个科目成绩文件(Algorithm.txt、Database.txt、Python.txt)格式(“姓名” + 空格 + “成绩”)输出学生平均成绩并以格式(“姓名”+空格+ “平均成绩”)输出文件;
2、 环境介绍
本次大作业全部操作均运行在Oracle VM VirtualBox虚拟环境中操作系统为:Ubuntu16.04。该操作系统还安装了:Hadoop2.7.1,Spark2.1.0,HBase1.1.5,MySQL,JDK1.8,Scala2.11.8, Kafka_2.11-0.10.2.0,Flume1.7.0,sbt,Maven3.3.9,MongoDB3.2.17,Hive2.1.0,Scala IDE(Eclipse4.7.0,Maven,Scala,sbt)。预留内存6082MB。
选择Ubuntu Linux是由因为Linux系统对资源的使用率更高同时Ubuntu系统有完善的社区使用时遇到困难可以到Ubuntu社区进行询问。同时 Ubuntu用户下载、使用、分享Ubuntu系统,以及获得技术支持与服务,无需支付任何许可费用。在硬件上Ubuntu 16.04支持i386 32位系列、amd 64位X86系列、ARM系列及PowerPC系列处理器。
Spark是一个通用的并行计算