- 需求描述
RDD是Spark的核心概念,它是一个只读的,可分区的分布式数据集,这个数据集可全部或部分缓存在内存中,在多次计算间重用。首先,通过对RDD编程初级实践的练习,我们会通过spark采用textFile()方法来从文件系统中加载数据创建RDD、各种操作API以及持久化和分区方法;其中,需要注意常用的RDD转换操作API:filter(func)、map(func)、flatMap(func)、groupByKey()、reduceByKey(func)等高阶函数;filter(func)操作会筛选出满足函数func的元素,并返回一个新的数据集;map(func)操作将每个元素传递到函数func中,并将结果返回为一个新的数据集;flatMap(func)与map()相似,但每个元素都可以映射到0或多个输出结果;reduceByKey(func)应用于(K,V)键值对的数据集时,返回一个新的(K,V)形式的数据集,其中的每个值是将每个key传递到函数func中进行聚合后得到的结果然后,介绍键值对RDD的各种操作,并给出了把RDD写入文件以及从文件中读取数据生成RDD的方法;进而学习并能熟悉掌握RDD编程的初级操作。
- 环境介绍
Oracle VM VirtualBox
操作系统:Ubuntu16.04、台式电脑win10系统、Ubantu
Spark版本:2.4.0
Python版本:3.4.3
- 数据来源描述
由老师分发的2020-2021(1)-大数据应用技术课程实验-期末大作业文件,里面包含data.txt文档是用于pyspark交互式编程实验的数据,由姓名、学科、分数组成;A.txt、b.txt文档是用于编写独立应用程序实现数据查重的实验数据,由学号和字母组成,可用于查重的实验操作;最后Algorithm.txt、Database.txt、Python.txt等文档是用于编写独立应用程序实现求平均值问题的实验,由各个学科每个人的姓名和分数组成。实验数据是通过模拟现实生活得到的数据,具有一定的真实性,使实验更贴近生活,以后能够更好的应用于生活。
- 数据上传及上传结果查看
- 数据处理过程描述
(1)pyspark交互式编程
本作业提供分析数据data.txt,该数据集包含了某大学计算机系的成绩,数据格式如下所示:
Tom,DataBase,80 Tom,Algorithm,50 Tom,DataStructure,60 Jim,DataBase,90 Jim,Algorithm,60 Jim,DataStructure,80 …… |
请根据给定的实验数据,在pyspark中通过编程来计算以下内容:
- 该系总共有多少学生;
- 该系共开设了多少门课程;
- Tom同学的总成绩平均分是多少;
- 求每名同学的选修的课程门数;