RDD是spark的核心组成,想要理解spark,就必须了解RDD。那么RDD具有什么样的特性,怎么来创建和应用呢?

一、RDD(Resilient Distributed Dataset

RDD是一个弹性分布式数据集,这里我们解释一下它具体的含义:

(1)弹性-如果在内存中的数据丢失,可以重建

(2)分布式-在整个集群中处理

(3)数据集-初始的数据可以由程序创建,也可以从文件中读取

RDD是spark数据的基础单位, 大多数程序由对RDDS的执行操作组成

二、创建RDD

创建RDD的三种方法 :(1)从文件或文件集; (2)从内存中的数据 ;(3)从另一个RDD

示例:基于文件的RDD创建

wKiom1iBewuSZLWsAAGOJd_cCgA316.png-wh_50

三、RDD操作

两种类型:(1)Actions-返回值;(2)Transformations-基于当前的RDD定义新的RDD

wKioL1iBe5zzE1cmAAA5Ybb4QOs079.png-wh_50

四、RDD操作: Actions

常见操作

(1)count()-返回元素的数量

(2)take(n)-返回包含前n个元素的数组

(3)collect()-返回所有元素的数组

(4)save As Text File(file)-保存为文本文件

wKiom1iBe4qhTq6UAAEzdzGFQrA402.png-wh_50

  • RDD操作: Transformations

Transformations基于存在的RDD创建新的RDD。RDDs是不可变的,它本身的数据不能修改,根据需要按顺序转换来修改数据 。

常见操作:

(1)map(function)-对基础RDD的每个记录执行函数

(2)filter(function)-根据boolean函数选出或者排除基础RDD的数据作为新的RDD

示例:map和filter Transformations

wKiom1iBe8LSxreDAAFpr28fxk0815.png-wh_50

以上是对于RDD进行的部分分享,后续还会继续挖掘RDD其它方面的知识。这里推荐大家一个微信公众号“大数据cn”,里面有很多大数据相关的知识介绍,可以去关注一下。