Spark 原理_逻辑图_RDD 之间的关系_一对一 | 学习笔记

简介: 快速学习 Spark 原理_逻辑图_RDD 之间的关系_一对一

开发者学堂课程【大数据 Spark 2020版(知识精讲与实战演练)第三阶段Spark 原理_逻辑图_RDD 之间的关系_一对一】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/689/detail/12012


Spark 原理_逻辑图_RDD 之间的关系_一对一


内容简介

一、了解逻辑图

二、RDD 之间有哪些依赖关系

三、总结

 

一、逻辑图是什么

逻辑图就是数据处理和存储的过程

1.RDD 的生成

2.RDD 的依赖关系

 

二、RDD 之间的依赖关系

image.png

1.如图所示,上方框表示的是 RDD 的变量,下方框表示的是 RDD 的类型,中间框代表的是 RDD 的计算

其中 HIDFS file 有三个分片(block),通过 textfile 算子生成了 textRDD

注释:为什么这里 textfile 算子生成了 mappartitionsRDD, 而非hadoopRDD?

因为 hadoopRDD 生成后,会再调用 map 算子进行转换操作,就生成了 mappartitionsRDD

HIDFS file 中的 block b1对应了 textRDD 中的分区 p1,通过计算进行转换

TextRDD HIDFS file 上读取内容后通过转换,拆分,展平后,生成 splitRDD,调用 flatmap 算子实现

SplitRDD 的分区数据经过 map 算子变成 tupleRDD 中对应的分区数据

探讨两个 RDD 之间的关系,应该从分区着手,一个 RDD 的分区与另一个 RDD 的分区之间是什么关系

其中 textRDDsplitRDD tupleRDD p1是一对一的关系。

2.什么是关系(依赖关系)?

从算子视角上来看,splitRDD 通过 map 算子得到了 tupleRDD,所以 splitRDD tupleRDD 之间的关系是 map

但是仅仅这样说,会不够全面,从细节上来看,RDD 只是数据和关于数据的计算,而具体执行这种计算得出结果的是一个神秘的其他组件,所以,这两个 RDD 的关系可以表示为 splitRDD 的数据通过 map 操作,被传入 tupleRDD,这是它们之间更细化的关系

但是 RDD 这个概念本身并不是数据容器,数据真正应该存放的地方是 RDD 的分区,所以如果把视角放在数据这一层面上的话,直接讲这两个 RDD 之间有关系是不科学的,应该从这两个 RDD 的分区之间的关系来探讨它们之间的关系

3.那这些分区之间是什么关系?
如果仅仅说 splitRDD tupleRDD 之间的话,那它们的分区之间就是一对一的关系

但是 tupleRDD reduceRDD 呢?

TupleDD 通过算子 reduceByKey 生成 reduceRDD,而这个算子是一个 shuffle 操作,shuffle 操作的两个 RDD 的分区之间并不是一对一,reduceByKey 的一个分区对应 tupleRDD 的多个分区

 

三、总结:

1.RDD 之间的依赖关系不是指 RDD 之间的关系,而是分区之间的关系

2.Map flatmap 这些算子的两个 RDD 之间的分区是 one to one

相关文章
|
2月前
|
移动开发 分布式计算 Spark
Spark的几种去重的原理分析
Spark的几种去重的原理分析
25 0
|
2月前
|
机器学习/深度学习 SQL 分布式计算
Spark核心原理与应用场景解析:面试经验与必备知识点解析
本文深入探讨Spark核心原理(RDD、DAG、内存计算、容错机制)和生态系统(Spark SQL、MLlib、Streaming),并分析其在大规模数据处理、机器学习及实时流处理中的应用。通过代码示例展示DataFrame操作,帮助读者准备面试,同时强调结合个人经验、行业趋势和技术发展以展现全面的技术实力。
|
2月前
|
存储 分布式计算 数据处理
bigdata-35-Spark工作原理
bigdata-35-Spark工作原理
26 0
|
10天前
|
机器学习/深度学习 分布式计算 API
技术好文:Spark机器学习笔记一
技术好文:Spark机器学习笔记一
|
2月前
|
分布式计算 Shell 开发工具
Spark编程实验二:RDD编程初级实践
Spark编程实验二:RDD编程初级实践
41 1
|
2月前
|
SQL 存储 分布式计算
spark执行sql的原理是什么
spark执行sql的原理是什么
41 1
|
2月前
|
存储 分布式计算 程序员
Spark中的RDD介绍
Spark中的RDD介绍
23 0
|
2月前
|
存储 缓存 分布式计算
Spark学习--day04、RDD依赖关系、RDD持久化、RDD分区器、RDD文件读取与保存
Spark学习--day04、RDD依赖关系、RDD持久化、RDD分区器、RDD文件读取与保存
|
2月前
|
存储 缓存 分布式计算
Spark RDD持久化与缓存:提高性能的关键
Spark RDD持久化与缓存:提高性能的关键
|
10月前
|
存储 缓存 分布式计算
大数据Spark RDD持久化和Checkpoint
大数据Spark RDD持久化和Checkpoint
70 0