RDD编程初级实践
一、数据来源描述
pyspark交互式编程
科任老师提供分析数据data.txt,该数据集包含了某大学计算机系的成绩,数据格式如下所示:
Tom,DataBase,80
Tom,Algorithm,50
Tom,DataStructure,60
Jim,DataBase,90
Jim,Algorithm,60
Jim,DataStructure,80
……
编写独立应用程序实现数据去重
对于两个输入文件A和B,编写Spark独立应用程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新文件C。本文给出门课的成绩(A.txt、B.txt)下面是输入文件和输出文件的一个样例,供参考。
输入文件A的样例如下:
20200101 x
20200102 y
20200103 x
20200104 y
20200105 z
20200106 z
输入文件B的样例如下:
20200101 y
20200102 y
20200103 x
20200104 z
20200105 y
根据输入的文件A和B合并得到的输出文件C的样例如下:
20200101 x
20200101 y
20200102 y
20200103 x
20200104 y
20200104 z
20200105 y
20200105 z
20200106 z
编写独立应用程序实现求平均值问题
每个输入文件表示班级学生某个学科的成绩,每行内容由两个字段组成,第一个是学生名字,第二个是学生的成绩;编写Spark独立应用程序求出所有学生的平均成绩,并输出到一个新文件中。本文给出门课的成绩(Algorithm.txt、Database.txt、Python.txt),下面是输入文件和输出文件的一个样例,供参考。
Algorithm成绩:
小明 92
小红 87
小新 82
小丽 90
Database成绩:
小明 95
小红 81
小新 89
小丽 85
Python成绩:
小明 82
小红 83
小新 94
小丽 91
平均成绩如下:
(小红,83.67)
(小新,88.33)
(小明,89.67)
(小丽,88.67)
二、数据上传及上传结果查看
图2.1 将所需的数据放进/usr/local/spark文件中
pyspark交互式编程
图2.2 查看data.txt中的数据
图2.3 data.txt中的数据
编写独立应用程序实现数据去重
图2.4 将所需的数据放进/usr/local/spark/big
图2.5 查看A.txt的数据
图2.6 查看B.txt的数据
编写独立应用程序实现求平均值问题
图2.7 查看相关数据
图2.8 查看Algorithm.txt的数据
图2.9 查看Database.txt的数据
图2.10 查看Python.txt的数据
三、数据处理过程描述
pyspark交互式编程
使用lines储存读取data.txt文件里的内容
lines=sc.textFile(‘file:///usr/local/spark/data.txt’)
(1) 该系总共有多少学生;
lines存储的是Row object类型
map()接收函数,把函数应用到RDD的每一个元素,返回新的RDD
首先提取第一列的数据,第一列的数据是学生的姓名,通过累加和去重可以算出总人数
res = lines.map(lambda x:x.split(“,”)).map(lambda x:x[0])
使用spark的distinc