RDD

作者: Frank_8942 | 来源:发表于2019-06-18 00:59 被阅读0次

RDD是弹性分布式数据集;

Internally, each RDD is characterized by five main properties:
 *  - A list of partitions
 *  - A function for computing each split
 *  - A list of dependencies on other RDDs
 *  - Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)
 *  - Optionally, a list of preferred locations to compute each split on (e.g. block locations for an HDFS file)

rdd具有5个特性:

1. 分区列表
rdd是被分区的,每个分区都会被一个task处理,分区数决定并行计算数量,rdd的并行度默认从父rdd传给子rdd; 默认情况下,hdfs上的块文件数就是spark处理时的分区数量,当然也可以在创建RDD时,人为指定RDD的分区数量,同时RDD的分区数最好设置为集群core数量的2-3倍;

2. 计算函数
spark的RDD的计算函数是以分片为基本单位的,每个RDD都会实现compute函数,对每个分区内的数据进行计算;其中,RDD的算子有宽窄依赖算子的分类,决定是否划分stage, 同时也有transformation和action算子的分类,决定是否触发job; 

3. 血缘关系
由于RDD每次转换都会生成新的RDD,所以RDD会形成类似流水线的前后依赖关系;

4. 分区器
分区只发生在shuffle阶段, 分区器控制分区规则和下游的分区数;当前Spark中实现了两种类型的分片函数,一个是基于哈希的HashPartitioner,另外一个是基于范围的RangePartitioner; 并且只有对于key-value的RDD,才会有Partitioner,非key-value的RDD的Parititioner的值是None; 

5. 分区数据的位置列表
此列表存储了每个Partition的优先位置,对于HDFS文件来说,就是每个分区数据的位置; 有了数据位置信息后,就可以实现数据不动代码动的特点,使得计算发生在本地;

相关文章

  • RDD的依赖关系:宽依赖和窄依赖

    RDD之间的依赖关系是指RDD之间的上下来源关系,RDD2依赖RDD1,RDD4依赖于RDD2和RDD3,RDD7...

  • RDD(二)

    class RDD源码解析 1.1 RDD源码 1.2 RDD类解释 1.3 RDD class中如何体现RDD的...

  • Spark Core2--LineAge

    Lineage RDD Lineage(又称为RDD运算图或RDD依赖关系图)是RDD所有父RDD的graph(图...

  • RDD详解

    RDD基本操作(引用) 1、RDD是什么 RDD:Spark的核心概念是RDD (resilientdistrib...

  • 【Spark入门-笔记】RDD编程

    1 RDD基础 2 创建RDD-两种方式 2.1 进行并行化创建RDD 2.2 读取数据创建RDD 3 RDD操作...

  • SPARK[RDD之转换函数]

    前面讲到了RDD的分区、RDD的创建,这节将讲解RDD的转换,RDD的转换就是从父RDD生成一个新的RDD,新的R...

  • Spark-core:Spark的算子

    目录一.RDD基础1.什么是RDD2.RDD的属性3.RDD的创建方式4.RDD的类型5.RDD的基本原理二.Tr...

  • Spark中repartition和coalesce的用法

    在Spark的Rdd中,Rdd是分区的。 有时候需要重新设置Rdd的分区数量,比如Rdd的分区中,Rdd分区比较多...

  • Spark中对RDD的理解

    Spark中对RDD的理解 简介 what the is RDD? RDD(Resilient Distribut...

  • Spark RDD

    一、RDD概述 1.1 什么是RDD? RDD(Resilient Distributed Dataset)叫做弹...

网友评论

      本文标题:RDD

      本文链接:https://www.haomeiwen.com/subject/fefahqtx.html