RDD的五大特性:
1.partitions_:partition数组
2.dependencies_:Dependency序列
3. compute:计算函数
4. Partitioner:分区器
5. Preferred Locations:存储存取每个Partition的优先位置
一、dependency
在RDD中dependencies_是专门用来存储当前RDD的父dependency序列。
dependencies方法,用于获取当前RDD的所有依赖的序列,源码如下:
package org.apache.spark.rdd
final def dependencies: Seq[Dependency[_]] = {
checkpointRDD.map(r => List(new OneToOneDependency(r))).getOrElse {
if (dependencies_ == null) {
dependencies_ = getDependencies
}
dependencies_
}
}
1.先从CheckPoint中获取RDD,并将这些

本文深入探讨Spark的RDD(弹性分布式数据集)源码,重点分析dependency(依赖关系)、Partition(分区)和compute(计算)三个核心概念。dependency涉及RDD的父依赖序列,Partiton说明了如何在不同RDD间传递数据,而compute阐述了数据变换的逻辑,包括从父RDD计算子RDD的数据。文章通过实例,如map和mapPartitions算子,揭示了RDD计算过程中的细节,如iterator方法和持久化与checkpoint的区别。
最低0.47元/天 解锁文章
1482





