Spark核心--RDD
2017-01-12 21:59
190 查看
RDD
RDD(Resilient Distributed Datasets)即弹性分布式数据集,它是Spark的核心概念,我们从以下几点来理解它:1. RDD由多个Partition构成,是分布在集群中的只读对象的集合。
2. RDD存储在磁盘或内存中,Spark提供了多种RDD缓存级别。
3. RDD可通过并行”转换”操作进行构造。
4. RDD失效后会自动重构。
如下图所示,RDD有三个分片,分片1存储在节点1的内存里,分片2存储在节点2的内存里,分片3存储在节点2的磁盘上。
RDD基本操作–Transformation & Action
Transformation操作是指通过程序集合或者Hadoop数据集构造一个新的RDD,即通过已有的RDD产生新的RDD。Action操作是指通过RDD计算而得到一个值或者一组值。Transformation接口定义:RDD[X] -> RDD[Y]
Action接口定义:RDD[X] -> Z (Z不是一个RDD, 可能是基本类型或数组等)
更多的接口定义如下:
惰性执行
这里要强调一点,Transformation只会记录RDD转化关系,并不会触发计算;Action才是触发程序执行的算子。
我们结合下图再解释下,RDD1通过Map(+1)的Transformation操作,新生成了RDD2,此时还没有触发计算。当RDD2执行saveAsTextFile的Action操作时,程序才触发执行,并将结果以文本文件的形式保存到了存储介质上。
RDD cache/persist
Spark提供了RDD缓存机制,它允许将RDD缓存到内存中或磁盘上,以便重用。Spark提供了多种缓存级别, 以便于用户根据实际需求进行设置。相关文章推荐
- Spark核心编程:RDD持久化详解
- 理解Spark的核心RDD
- Spark核心数据模型RDD及操作
- Spark由浅到深(2)-- 了解核心概念RDD
- Spark核心RDD:combineByKey函数详解
- Spark核心RDD:combineByKey函数详解
- 理解Spark的核心RDD
- Spark核心API发展史:RDD、DataFrame、DataSet
- “戏”说Spark-Spark核心-RDD转换操作算子详解(一)
- Spark核心RDD:combineByKey函数详解
- Spark核心RDD:foldByKey函数详解
- 理解Spark的核心RDD
- Spark核心编程:操作RDD(transformation和action案例实战)
- 3.1、Spark核心概念——RDD概述
- Spark核心类:弹性分布式数据集RDD及其转换和操作pyspark.RDD
- Spark 核心概念 RDD 详解
- Spark的核心概念——RDD
- 理解Spark的核心RDD
- Spark核心RDD:Sort排序详解
- Spark核心RDD的研究