RDD编程初级实践-课程论文
- 需求描述
本次实验需要对给定数据进行RDD的基本操作,使用RDD编程实现解决具体问题的方法。内容要求分为三个部分:
- pyspark交互式编程
根据给定大学成绩数据集,用pyspark来进行编程,分析并计算以下内容:
(1)该系总共有多少学生;
(2)该系共开设了多少门课程;
(3)Tom同学的总成绩平均分是多少;
(4)求每名同学的选修的课程门数;
(5)该系DataBase课程共有多少人选修;
(6)各门课程的平均分是多少;
(7)使用累加器计算共有多少人选了DataBase这门课。
2.编写独立应用程序实现数据去重
对于两个输入文件A和B,编写Spark独立应用程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新文件C。文件C的样例如下:
20200101 x
20200101 y
20200102 y
20200103 x
20200104 y
20200104 z
20200105 y
20200105 z
20200106 z
3.编写独立应用程序实现求平均值问题
编写Spark独立应用程序求出所有学生的平均成绩,并输出到一个新文件中。
- 环境介绍
该实验考察学生对使用PySpark进行编程的熟悉程度。Spark是专为大规模数据处理设计的快速通用计算引擎,是与Hadoop相似的开源集群计算环境,但在某些工作负载方面表现得比Hadoop更优秀。
本实验使用Oracle VM VirtualBox上的Linux操作系统Ubuntu Kylin,版本为16.04,虚拟机上需要架构好Spark(2.4.0)环境。本实验使用Python(3.4.3)进行数据操作。
- 数据来源描述
1.pyspark交互式编程
该数据是某所大学计算机系的学生成绩,数据文件为data.txt,格式如下所示:
Tom,DataBase,80 Tom,Algorithm,50 Tom,DataStructure,60 Jim,DataBase,90 Jim,Algorithm,60 Jim,DataStructure,80 …… |
2.编写独立应用程序实现数据去重
本实验给出门课的成绩(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
3.编写独立应用程序实现求平均值问题
本实验给出门课的成绩(Algorithm.txt、Database.txt、Python.txt)。每个输入文件表示班级学生某个学科的成绩,每行内容由两个字段组成,第一个是学生名字,第二个是学生的成绩。样例如下:
Algorithm成绩:
小明 92
小红 87
小新 82
小丽 90
Database成绩:
小明 95
小红 81
小新 89
小丽 85
Python成绩:
小明 82
小红 83
小新 94
小丽 91
- 数据上传及上传结果查看
- pyspark交互式编程
2.编写独立应用程序实现数据去重
3.编写独立应用程序实现求平均值问题
5、数据处理过程描述
- pyspark交互式编程
- 该系总共有多少学生;
- 创建RDD
- 拆分每行记录,取出每行第一个元素
- 去除文件中的重复记录
- 统计所有未重复记录
- 该系共开设了多少门课程;
- Tom同学的总成绩平均分是多少;
- 提取Tom的每门成绩,并转换为int类型
- 统计Tom有多少门课程
- 统计Tom的总成绩
- 求每名同学的选修的课程门数;
- 生成RDD
- 求出学生每门课程对应(学生姓名,1),学生有n门课,则有n个学生
- 按学生姓名为key,获取每个学生的课程总数
- 按照学生姓名分组统计他们选修课程数
- 该系DataBase课程共有多少人选修;
- 生成RDD
- 为每门课程的分数后面新增一列1,表示一个学生选择了该门课程
- 各门课程的平均分是多少;
- 使用累加器计算共有多少人选了DataBase这门课。
2.编写独立应用程序实现数据去重
(1)分别创建A与B的RDD
(2)生成包含A和B两个RDD所有元素的新RDD
(3)对数据进行去重(利用distinct函数,图中临时注释掉了)
(4)对值进行排序
(5)将结果用repartition合并,写入result文件夹
结果为:
3.编写独立应用程序实现求平均值问题
(1)初始化SparkContext,分别生成三个文件的RDD
(2)合并三个文件为一
(3)为每列数据增加一列1以统计学生选修科目数量
(4)计算每个学生的总成绩和选修数目
(5)用总成绩除以选修课程数,以计算学生每门课程的平均分(保留两位小数)
(6)将结果写入文件
平均分结果为:
6、经验总结
本节课程让我接触到了目前大数据的前沿技术之一——Spark计算引擎,该引擎有Hadoop的优点,但在数据存储方面比Hadoop更优秀,内存计算速度比Hadoop快上100倍。
通过将近20周的学习,我学会了Spark环境的搭建,复习了Python与SQL的语法并使用它们在Spark上进行了数据的操作处理。其中最重要的一个概念是RDD,它是Spark提供的一种抽象数据集,分布在集群的节点上,用函数操作集合的方式来进行并行操作。
本次实验主要考察的就是我们对RDD的了解和熟悉程度,通过实际操作,我学习到RDD是只读数据,不能修改,只能通过转换生成新的RDD。对文件进行数据操作需要构建RDD,再通过各种函数进行数据集操作,例如去重、合并、分词等等。
RDD编程初级实践-课程论文相关推荐
- Spark综合大作业:RDD编程初级实践
Spark综合大作业:RDD编程初级实践 实验配置:操作系统:Ubuntu16.04 | 环境:Spark版本:2.4.0 | 软件:Python版本:3.4.3. 文章目录 一.实验目的 二.实验平 ...
- spark期末大作业RDD编程初级实践
1.需求描述 本次实验需要:系统:linux unbuntu14.04,处理器:至少需要两个处器,一个内核,内存:至少4G,硬盘空间:大小需要20GB.Hadoop:2.7.1以上版本,JDK:1.8 ...
- RDD编程初级实践(期末大作业)
文章目录 1.pyspark交互式编程 (1)该系总共有多少学生: (2)该系共开设了多少门课程: (3)Tom同学的总成绩平均分是多少: (4)求每名同学的选修的课程门数: (5)该系DataBas ...
- 实验5 Spark SQL编程初级实践
今天做实验[Spark SQL 编程初级实践],虽然网上有答案,但在自己的环境下并不能够顺利进行 在第二题中,要求编程实现将 RDD 转换为 DataFrame.根据所谓标准答案,在进行sbt 打包时 ...
- Scala编程初级实践-统计学生成绩
Scala编程初级实践 统计学生成绩 学生的成绩清单格式如下所示,第一行为表头,各字段意思分别为学号.性别.课程名1.课程名2等,后面每一行代表一个学生的信息,各字段之间用空白符隔开 Id gende ...
- Spark大数据分析与实战:Spark Streaming编程初级实践
Spark Streaming编程初级实践 一.安装Hadoop和Spark 具体的安装过程在我以前的博客里面有,大家可以通过以下链接进入操作: Hadoop的安装:https://blog.csdn ...
- MapReduce编程初级实践
MapReduce编程初级实践 1.通过实验掌握基本的MapReduce编程方法: 2.掌握用MapReduce解决一些常见的数据处理问题,包括数据去重.数据排序和数据挖掘等. 1.编程实现文件合并和 ...
- mapreduce编程初级实践_涨姿势!2020最好的 10 大国外编程学习网站
码个蛋(codeegg) 第 1043 次推文 作者:John Selawsky 链接:https://sourl.cn/cWw63v 前言 在这篇文章中,我收集了 10 个最佳的编程学习网站,掌握编 ...
- 实验4 MapReduce编程初级实践【java编程实现】
1.编程实现文件合并和去重操作 对于两个输入文件,即文件A和文件B,请编写MapReduce程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新的输出文件C.下面是输入文件和输出文件的一个样例供 ...
最新文章
- 用aspnetpager实现datalist分页(绝对的简单实用)
- ffmpeg rtp时间戳
- Java项目如何改成maven_普通java项目改进为maven:ecplise
- pyminifier混淆代码的使用案例
- c语言如何发现错误在哪里,二个C语言例子,编译没通过.不知道错在哪里[求助]
- JAVA——Unicode编码格式工具类
- 利用Linux命令行进行文本按行去重并按重复次数排序yes
- Gradle增量编译(六)
- 开源 java CMS - FreeCMS2.6 Web页面信息采集
- 暑期训练日志----2018.8.19
- 销售联系客户 需要技巧
- 大公司病?记改一个文字颜色的过程
- Leetcode 208:实现Trie(前缀树)
- Perl面向对象编程
- 关于xcode中的代码比较工具
- 155款安卓开源项目源码整理,总有你要找的(精心收集)
- 数据结构/排序/归并排序/二路归并排序
- 工业相机选型、高速摄像机选型、相机参数接口总结
- 记一次oracle通过dblink连接mysql实施
- python视频搬运_拒绝降权!教你用 Python 确保制作的短视频独一无二
热门文章
- 分享6个国内优秀Java后台管理框架的开源项目
- 101到200之间素数
- 圆形路标_自定义工具:路标不足时
- 大数据建模与数据模型工具
- 直播预告 | 香侬科技孟昱先:用MRC框架解决各类NLP任务
- 2021年黄石三中高考成绩查询,2021年黄石中考各学校录取分数线,历年黄石中考分数线汇总...
- 全面理解隐马尔可夫模型
- 三星手机电池循环清零代码_2018年自然语言处理最值得关注的研究、论文和代码...
- odb 使用指南(四)数据库查询
- 小睿睿的等式 (思维dp)