rdd的特点

 我来答
抛下思念17
2022-10-07 · TA获得超过1.1万个赞
知道大有可为答主
回答量:6741
采纳率:99%
帮助的人:39.2万
展开全部
有一个分片列表,就是能被切分,和Hadoop一样,能够切分的数据才能并行计算。
一组分片(partition),即数据集的基本组成单位,对于RDD来说,每个分片都会被一个计算任务处理,并决定并行计算的粒度。用户可以在创建RDD时指定RDD的分片个数,如果没有指定,那么就会采用默认值。

扩展资料

  默认值就是程序所分配到的CPU Core的数目。

  每个分配的存储是由BlockManager实现的,每个分区都会被逻辑映射成BlockManager的一个Block,而这个Block会被一个Task负责计算。

  由一个函数计算每一个分片,这里指的是下面会提到的compute函数。

  Spark中的RDD的计算是以分片为单位的,每个RDD都会实现compute函数以达到这个目的。compute函数会对迭代器进行复合,不需要保存每次计算的结果。

  对其他RDD的依赖列表,依赖还具体分为宽依赖和窄依赖,但并不是所有的RDD都有依赖。

  RDD的每次转换都会生成一个新的RDD,所以RDD之间就会形成类似于流水线一样的前后依赖关系。在部分分区数据丢失时,Spark可以通过这个依赖关系重新计算丢失的分区数据,而不是对RDD的所有分区进行重新计算。

  可选:key-value型的RDD是根据哈希来分区的,类似于mapreduce当中的paritioner接口,控制Key分到哪个reduce。

  一个partitioner,即RDD的分片函数。当前Spark中实现了两种类型的分片函数,一个是基于哈希的HashPartitioner,另外一个基于范围的RangePartitioner。只有对于key-value的RDD,才会有Partitioner,非key-value的RDD的Partitioner的值是None。Partitioner函数不但决定了RDD本身的分片数量,也决定了parent RDD Shuffle输出时的分片数量。

  可选:每一分片的优先计算位置,比如HDFS的'block的所在位置应该是优先计算的位置。

  一个列表,存储存取每个Partition的优先位置(preferred location)。对于一个HDFS文件来说,这个列表保存的就是每个Partition所在的块的位置。按照“移动数据不如移动计算”的理念,Spark在进行任务调度的时候,会尽可能地将计算任务分配到其所要处理数据块的存储位置。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
中材新材料研究院(广州)有限公司
2019-12-17 广告
Transmission electron microscope 吗? 追问: 能用中文么 回答: 是说 透射电子显微镜 吗? 追问: 是啊,需要它的分析功能 回答: TEM进行样品分析时,通常是获得高倍放大倍数的电子图像,或者是得到电子衍... 点击进入详情页
本回答由中材新材料研究院(广州)有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式