美文网首页
Spark-RDD简介

Spark-RDD简介

作者: 布莱安托 | 来源:发表于2020-07-06 19:59 被阅读0次

什么是RDD

RDD(Resilient Distributed Dataset)称为弹性分布式数据集,是Spark中最基本的数据计算抽象。代表了一个不可变、可分区、可并行计算的集合。

RDD体现了装饰者设计模式,将数据处理的逻辑进行了封装。

RDD的属性

  1. 分区列表
  2. 计算分区的函数
  3. RDD间的依赖关系
  4. 【可选】适用于键值对类型RDD的分区器(Partitioner)
  5. 【可选】用于计算分区的首选位置列表

RDD的特点

RDD表示只读的分区数据集,对RDD进行改动,只能通过转换操作,由一个RDD的到另一个新的RDD,新的RDD包含了从其他RDD衍生所必须的信息,即RDD之间存在依赖,也称之为RDD间的血缘关系。

RDD的执行是按照血缘关系延时计算的,如果血缘关系较长,可以通过持久化RDD来切断血缘关系。

分区

RDD逻辑上是分区的,每个分区数据是抽象存在的,计算时会通过compute方法的到每个分区的数据。

只读

RDD是只读的,想要改变RDD中的数据,只能在现有RDD的基础上创建新的RDD。

由一个RDD转换到另一个RDD,可以通过各种算子实现。

image.png

RDD算子包括两类,一类叫变形算子(transformations),用来将RDD进行转化,构建RDD间的血缘关系;另一类叫行动算子(actions),用来触发RDD的计算,得到相关计算结果或保存RDD

依赖

RDD通过操作算子进行转换,转换得到的新RDD包含了其他RDD衍生所需必须的信息,RDD之间维护的这种血缘关系,也称之为依赖。

如下图所示,依赖包括两种,一种叫窄依赖(Narrow Dependencies),RDD之间分区是一一对应的;另一种是宽依赖(Wide Dependencies),下游的RDD的每个分区与上游RDD的每个分区都有关,是一种多对多的关系

image.png

缓存

如果在应用程序中多次同一个RDD,可以将该RDD缓存起来,这样该RDD只有在第一次计算的时候会根据血缘关系的到分区的数据,后续使用都会从缓存读取而不用再根据血缘关系计算。

相关文章

  • Spark-RDD简介

    什么是RDD RDD(Resilient Distributed Dataset)称为弹性分布式数据集,是Spar...

  • spark-rdd

    rdd Resilient Distributed DataSets 容错的 并行的数据结果 transform ...

  • Spark-RDD介绍

    RDD 1 RDD介绍 Driver program:包含程序的main()方法,RDDs的定义和操作。管理节点,...

  • Spark-RDD分区

    RDD分区 在分布式程序中,通信的代价是很大的,因此控制数据分布以获得最少的网络传输可以极大地提升整体性能。所以对...

  • Spark-RDD详解

    1.RDD是什么 RDD:Spark的核心概念是RDD (resilientdistributed data...

  • Spark-RDD算子

    map 说明 通过指定变换函数将原有RDD中的元素逐个进行变换,并返回一个新的RDD 示例 结果 246810 ...

  • 1.5.1.1 Spark-RDD

    总目录:https://www.jianshu.com/p/e406a9bc93a9 Hadoop - 子目录:h...

  • Spark-RDD持久化

    (1) persist算子 使用方法: StorageLevel说明: StorageLevel的构造函数: St...

  • Spark-RDD持久化

    (1) persist算子 使用方法: StorageLevel说明: StorageLevel的构造函数: St...

  • Spark-RDD持久化

    (1) persist算子 使用方法: StorageLevel说明: StorageLevel的构造函数: St...

网友评论

      本文标题:Spark-RDD简介

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