博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark 宽依赖和窄依赖
阅读量:6720 次
发布时间:2019-06-25

本文共 581 字,大约阅读时间需要 1 分钟。

hot3.png

我们知道RDD就是一个不可变的带分区的记录集合,Spark提供了RDD上的两类操作,转换和动作。转换是用来定义一个新的RDD,包括map, flatMap, filter, union, sample, join, groupByKey, cogroup, ReduceByKey, cros, sortByKey, mapValues等,动作是返回一个结果,包括collect, reduce, count, save, lookupKey。

首先要注意一点,就是分区,那么:

  1. 如果一个RDD的依赖的每个分区只依赖另一个RDD的同一个分区,就是narow,如图上的C和D,D和F,B和G,这样就不需要进行shuffle,同时还可以按照流水线的方式,把一个分区上的多个操作放在一个Task里进行,如图上覆盖C,D,F的红色阴影。
  2. 如果一个RDD的每个分区需要依赖另一个RDD的所有分区,就是wide,如图上的A和B,F和G,这样的依赖需要进行shuffle,需要更多的运算。

作者:用心阁
链接:https://www.zhihu.com/question/37137360/answer/70608128
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

转载于:https://my.oschina.net/dongtianxi/blog/733869

你可能感兴趣的文章
美团在Redis上踩过的一些坑-5.redis cluster遇到的一些问题
查看>>
浅谈JAVA的线程安全与性能之间的权衡
查看>>
python入门系列之一:Centos6下python2.7的安装
查看>>
31.软连接
查看>>
oracle 11g 手工热备-数据库
查看>>
跟我一起数据挖掘(17)——分布式缓存
查看>>
python paramiko 执行命令
查看>>
centos7安装
查看>>
docker强制删除none的image镜像
查看>>
JavaScript学习
查看>>
Linux下通用二进制安装包安装MySQL-5.6.37
查看>>
简单跳板机的搭建笔记
查看>>
Verizon宣布2018年将部署全国性NB-IoT网络
查看>>
python 十六进制转换十进制(MAC 转换 IP 地址)
查看>>
opensips使用加密密码认证
查看>>
静态元素过期时间
查看>>
php 解决乱码问题
查看>>
Ubuntu安装Mcafee步骤
查看>>
FTP服务器搭建下的主动模式和被动模式
查看>>
owncloud在CentOS上详细部署
查看>>