首页 > 其他分享 >RDD的两种依赖——窄依赖和宽依赖

RDD的两种依赖——窄依赖和宽依赖

时间:2024-01-16 12:55:23浏览次数:26  
标签:依赖 两种 分区 RDD 被子 操作

      在Spark中,对RDD进行的每一次转化操作都会生成一个新的RDD,由于RDD的懒加载特性,新的RDD会依赖原有RDD,因此RDD之间存在类似流水线的前后依赖关系。这种依赖关系分为两种:窄依赖和宽依赖。

    一:窄依赖

    窄依赖是指父RDD的一个分区最多被子RDD的一个分区所用。例如map()、filter()、union()等操作都会产生窄依赖。   

    二:宽依赖

    宽依赖是指,父RDD的一个分区被子RDD的多个分区所用。例如groupByKey()、reduceByKey()、sortByKey()等操作都会产生宽依赖。

 

    注意:

   1. 对于join算子,两种依赖都可能产生!

   2. 在数据容错方面,窄依赖要优于宽依赖。当子RDD的某一个分区的数据丢失时,若是窄依赖,只需重算和该分区对应的父RDD分区即可,而宽依赖则可能需要重算父RDD的所有分区。

 

标签:依赖,两种,分区,RDD,被子,操作
From: https://www.cnblogs.com/tianpan666/p/17967433

相关文章

  • [spring] spring学习笔记(1): 通过xml实现依赖注入(1)
    依赖注入是spring框架中一个重要思想-InversionofControl(IoC)-的实现,大体上来说,就是通过配置Bean对象,让spring内置的方法来为主对象创建需要的依赖对象;打个比方,在java中,当我们想要使用某个类时,应当通过new关键字来指定,i.e.//在这里创建一个类,他需要使......
  • 【不起作用】限制前端项目安装依赖的工具只能是:npm、yarn、pnpm中的一个
    前言安装依赖的工具有好几个,有时候我们在多个项目之间切换时,容易忘记,所以我们需要设置某个项目只能使用某一种依赖安装工具正文方案一(不推荐)本方案仅供提示作用,并不会强制限制首先项目根目录下新建一个.npmrc文件,内容为:engine-strict=true然后修改项目的package.js......
  • 页面无法右键及复制的两种方式(js 与 css)
    1、全局在body上设置属性:<bodyonselectstart="returnfalse"onpaste="returnfalse"oncopy="returnfalse"oncut="returnfalse">2、js控制页面无法复制:<scripttype="text/javascript">//Methodone//&l......
  • #星计划# OH编译构建分析 - 依赖关系检查
    背景OHOS的编译构建系统是由sh脚本(或bat脚本),python脚本,Gn和Ninja工具组成的编译构建框架。总体编译构建流程是根据产品配置,生成具体依赖关系,然后使用Gn配置构建目标,通过Gn生成ninja文件,然后执行ninja生成二进制,最后打包生成镜像的过程。本篇主要涉及配置文件规则和编译初期的规则......
  • 【APP逆向06】Hook的两种方案
    hook有两种方案1.attach方案Attach方式是在目标应用程序已经运行的过程中动态地连接并注入Frida的Agent代码需要对已经运行的应用程序进行Hook,即动态地连接到正在运行的进程。需要在应用程序运行时拦截和修改特定的方法调用。需要实时监视和修改应用程序的行为,例如......
  • 两种方法实现Linux不活动用户登录超时后自动登出
    在平常的工作中,windows系统使用的比较多一些,身边的很多同事都会对自己的电脑进行一些个性化设置,比如离开一段时间后自动锁屏、自动关闭屏幕、自动注销当前登录等。在windows下可以这样操作,那么在Linux下是否也可以这样操作呢?经过一段时间的摸索,本人发现了2中方法来实现Linux下不活......
  • Vue项目下载依赖报错
    报错内容如下:npmERR!codeEPERMnpmERR!syscallopennpmERR!pathE:\nodejs\node_cache\_cacache\index-v5\2d\c6\f5749b7a403adaf0e2e39df42469722a24d2da8b573c676c602475e083denpmERR!errno-4048npmERR!Error:EPERM:operationnotpermitted,open�......
  • typescript实现一个最简的装饰器依赖注入
    装饰器依赖注入,元数据键是关键因此必须开启ts装饰器和ts元数据tsconfig.json"experimentalDecorators":true,//开启装饰器"emitDecoratorMetadata":true,//开启元数据并且安装reflect-metadata支持元数据编程全局入口倒入一次即可import"reflect-metadata";类型元数据:......
  • 【CMake】5. 单项目多模块添加第三方依赖示例工程
    CMake示例工程代码https://github.com/LABELNET/cmake-simple单项目单模块示例工程https://github.com/LABELNET/cmake-simple/tree/main/simple-mod-deps这里引入C++gRPC依赖,进行示例1.多模块工程+第三方依赖CMake多模块工程,这是一个示例工程simple-mod-deps,项目名称de......
  • 【CMake】3.单项目单模块添加第三方依赖包示例工程
    CMake示例工程代码https://github.com/LABELNET/cmake-simple单项目单模块-添加第三方依赖示例工程https://github.com/LABELNET/cmake-simple/tree/main/simple-deps1.单模块工程+第三方依赖CMake单模块工程,这是一个示例工程simple-deps,项目名称cmake,第三方依赖demo......