RDD编程初级实践

本文介绍了使用Spark的RDD进行数据处理的三个任务:1) 使用pyspark进行交互式编程,计算学生数量、课程数量、平均成绩等;2) 编写独立应用程序实现数据去重,合并并去除重复内容;3) 编程求解多个成绩文件的平均成绩。实验环境为Ubuntu 16.04,Spark 2.4.0,Python 3.4.3。
摘要由CSDN通过智能技术生成

一、需求描述

随着软件技术的发展,很大庞大的数据都需要大数据技术去查询与筛选。本次实验需要熟悉Spark的RDD基本操作及键值对操作与使用RDD编程解决实际具体问题的方法。

需求一:pyspark交互式编程

本作业提供分析数据data.txt,该数据集包含了某大学计算机系的成绩,数据格式如下所示:

Tom,DataBase,80

Tom,Algorithm,50

Tom,DataStructure,60

Jim,DataBase,90

Jim,Algorithm,60

Jim,DataStructure,80

……

根据给定的实验数据,在pyspark中通过编程来计算以下内容:

  1. 该系总共有多少学生;
  2. 该系共开设了多少门课程;
  3. Tom同学的总成绩平均分是多少;
  4. 求每名同学的选修的课程门数;
  5. 该系DataBase课程共有多少人选修;
  6. 各门课程的平均分是多少;
  7. 使用累加器计算共有多少人选了DataBase这门课。

需求二:编写独立应用程序实现数据去重, 对于两个输入文件A和B,编写Spark独立应用程序,对两个文件进行合并,并剔除其中重复的内容,得到一个新文件C。

需求三:.编写独立应用程序实现求平均值问题,每个输入文件表示班级学生某个学科的成绩,每行内容由两个字段组成,第一个是学生名字,第二个是学生的成绩;编写Spark独立应用程序求出所有学生的平均成绩,并输出到一个新文件中。

 

二、环境介绍

操作系统:Ubuntu16.04

Spark版本:2.4.0

Python版本:3.4.3

Ubuntu是一款以桌面应用为主的Linux操作系统,可以良好地运行Linux操作系统,是本学期大数据学习的主要环境。

Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

spark用于实现快速通用的集群计算平台,用来构建大型的、低延迟的数据分析应用程序。它扩展了广泛使用的MapReduce计算模型。高效的支撑更多计算模式,包括交互式查询和流处理。spark的一个主要特点是能够在内存中进行计算,及时依赖磁盘进行复杂的运算,Spark依然比MapReduce更加高效。RDD弹性分布式数据集(RDD)是其设计的核心为内存计算、适合计算机集群、高效率容错的可以在 Spark 上进行并行操作的关于分区数据元素的集合且是只读的在 Spark。

三、数据来源描述

   大数据分析的数据来源有很多种,包括公司或者机构的内部来源和外部来源。分为以下几类:    

    1.交易数据。包括POS机数据、信用卡刷卡数据、电子商务数据、互联网点击数据、“企业资源规划”(ERP)系统数据、销售系统数据、客户关系管理(CRM)系统数据、公司的生产数据、库存数据、订单数据、供应链数据等。  

    2.移动通信数据。能够上网的智能手机等移动设备越来越普遍。移动通信设备记录的数据量和数据的立体完整度,常常优于各家互联网公司掌握的数据。移动设备上的软件能够追踪和沟通无数事件,从运用软件储存的交易数据(如搜索产品的记录事件)到个人信息资料或状态报告事件(如地点变更即报告一个新的地理编码)等。  

    3.人为数据。人为数据包括电子邮件、文档、图片、音频、视频,以及通过微信、博客、推特、维基、脸书、Linkedin等社交媒体产生的数据流。这些数据大多数为非结构性数据,需要用文本分析功能进行分析。

    4.机器和传感器数据。来自感应器、量表和其他设施的数据、定位/GPS系统数据等。这包括功能设备会创建或生成的数据,例如智能温度控制器、智能电表、工厂机器和连接互联网的家用电器的数据。来自新兴的物联网(Io T)的数据是机器和传感器所产生的数据的例子之一。来自物联网的数据可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值