RDD的依赖关系

Spark中使用DAG(有向无环图)来描述RDD之间的依赖关系,根据依赖关系的不同,划分为宽依赖和窄依赖

通过上图,可以很容易得出所谓宽依赖:多个子RDD的partition会依赖同一个parentRDD的partition;窄依赖:每个parentRDD的partition最多被子RDD的一个partition使用。这两个概念很重要,像宽依赖是划分stage的关键,并且一般都会伴有shuffle,而窄依赖之间其实就形成前文所述的pipeline管道进行处理数据。(图中的map、filter等是Spark提供的算子,具体含义大家可以自行到Spark官网了解,顺便感受一下scala函数式编程语言的强大)。

Spark任务以及stage等的具体划分,牵涉到源码,后续会单独讲解

最后笔者以RDD源码中的注释,阐述一下RDD的属性:

  1. 分区列表(数据块列表,只保存数据位置,不保存具体地址)

2. 计算每个分片的函数(根据父RDD计算出子RDD)

3. RDD的依赖列表

4. RDD默认是存储于内存,但当内存不足时,会spill到disk(可通过设置StorageLevel来控制)

5. 默认hash分区,可自定义分区器

6. 每一个分片的优先计算位置(preferred locations)列表,比如HDFS的block的所在位置应该是优先计算的位置

更多Spark分区原理和特性请参考文章:

通过spark.default.parallelism谈Spark谈并行度​mp.weixin.qq.com

聊聊Spark的分区​mp.weixin.qq.com

重要 | Spark分区并行度决定机制​mp.weixin.qq.com


关注 微信公众号:大数据学习与分享,获取更多技术干货

db2有主键时默认hash分区_Spark RDD依赖关系以及分区属性相关推荐

  1. db2有主键时默认hash分区_不允许设置db2主键问题的解决

    设置db2主键问题出错的话,应该如何处理呢?下面就教您一个不允许设置db2主键问题的解决方法,希望对您学习设置db2主键方面有所帮助. 将empno设置为主键 db2 => alter tabl ...

  2. db2有主键时默认hash分区_彻底搞懂 MySQL 分区!

    GrimMjxhttps://www.cnblogs.com/GrimMjx/p/10526821.html 一.InnoDB逻辑存储结构 首先要先介绍一下InnoDB逻辑存储结构和区的概念,它的所有 ...

  3. db2有主键时默认hash分区_MySQL分区表最佳实践

    前言: 分区是一种表的设计模式,通俗地讲表分区是将一大表,根据条件分割成若干个小表.但是对于应用程序来讲,分区的表和没有分区的表是一样的.换句话来讲,分区对于应用是透明的,只是数据库对于数据的重新整理 ...

  4. oracle change schema,使用pt-online-schema-change修改主键时注意

    使用 pt-online-schema-change 做在线ddl最添加普通索引.列,修改列类型.添加默认值等使用比较常规,但涉及到要修改的是主键时就有点棘手.在我修改线上实例过程中,有这样的需求,不 ...

  5. SQL语句 -非空约束 - 唯一约束 - 主键约束 - 默认约束 -外键约束

    文章目录 约束 约束介绍和分类 非空约束 唯一约束 主键约束 默认约束 案例练习 外键约束 约束 约束介绍和分类 约束的概念: 约束是作用于表中列上的规则,用于限制加入表的数据 约束的存在保证了数据库 ...

  6. sql -803 DB2修改主键起始值

    DB2修改主键起始值 查看表现在最大的id select max(id) from ysaf_org_department -- 假设值是240 最大的id+1 -- 值为241 执行 alter t ...

  7. mysql主键自增 insert_MySQL数据表中有自增长主键时如何插入数据

    https://jingyan.baidu.com/article/fcb5aff7b3a025edaa4a7130.html 设置自增列 phpmyadmin 把A_I选中 就是AUTO_INCRE ...

  8. JPA映射组合主键时错误:No default constructor for entity

    我们在使用JPA对历史问题处理时,会涉及到组合主键的处理.处理的思路如下: 使用@Embeddabel定义一个组合组键ID ID实现SErializable接口 声明一个protected的构造方法 ...

  9. mysql 主键 默认索引_mysql 主键和默认 设为索引的规则

    一.mysql 表中如果是单主键的话,那这个主键也会被 系统默认建为 索引 二.mysql 表中如果是复合主键的话,那系统会遵循左对齐原则,即如复合主键 a 和 b字段和c字段..., 默认建的主键索 ...

最新文章

  1. 学Java还是Python?一张图告诉你!
  2. oracle存储过程 学习笔记
  3. 奇怪的方式c语言,C语言中奇怪的C语言特性
  4. AngularJS基于MVC的复杂操作案例
  5. 利用rman创建standby(一)(转 http://ningoo.itpub.net/post/2149/230943)
  6. 华为获 25 份 5G 合同;ofo 退款用户数超千万;贾跃亭躲豪宅拒收法律文书 | 极客头条...
  7. 开课吧:C++开发需要知晓的知识有哪些?
  8. java 复制一个对象_Java如何完全复制一个对象
  9. Java记录 -89- java.lang.Class
  10. windows下mongodb安装与使用
  11. 基于nvidia的ffmpeg编解码加速
  12. 使用SVM分类器进行图像多分类
  13. 计算机类普刊有哪些,计算机类普刊期刊发表推荐
  14. PHP 对和队列的区别,【php】Redis的队列和消息队列的区别是什么?
  15. 开源数据库连接池的使用
  16. 微信公众号服务器配置url,微信公众号平台设置服务器地址(URL)和令牌(Token)配对启用方法...
  17. 【Photoshop 教程系列第 2 篇】如何将 PS 中字体单位由点改为像素
  18. “全量增量” 与 “增量同步” 一文了解清楚【建议收藏】
  19. java学习笔记-第八章:面向对象编程(中级部分)
  20. spritekit 动画_iOS SpriteKit 游戏

热门文章

  1. Python:如何安装whl文件
  2. 几种特种印花方式简介
  3. Docker镜像导致centos-root根分区容量爆满
  4. jQuery.ajax()异步方法的漏洞
  5. 在Mac中用快捷键快速插入日期时间
  6. MultiByteToWideChar和WideCharToMultiByte的正确使用方法及参数详解
  7. python for symbian6
  8. opencv linux 编译好,linux下编译opencv
  9. linux mysql apache php 安装_linux下安装apache与php;Apache+PHP+MySQL配置攻略
  10. 横向导出excel_万能转换:R图和统计表转成发表级的Word、PPT、Excel、HTML、Latex、矢量图等...