美文网首页
RDD 初识

RDD 初识

作者: 李飞_fd28 | 来源:发表于2019-12-20 22:38 被阅读0次

RDD(Resilent Distributed Datasets)俗称弹性分布式数据集,是 Spark 底层的分布式存储的数据结构,可以说是 Spark 的核心, Spark API 的所有操作都是基于 RDD 的. 数据不只存储在一台机器上,而是分布在多台机器上,实现数据计算的并行化.弹性表明数据丢失时,可以进行重建.在Spark 1.5版以后,新增了数据结构 Spark-DataFrame,仿造的 R 和 python 的类 SQL 结构-DataFrame, 底层为 RDD, 能够让数据从业人员更好的操作 RDD.
  在Spark 的设计思想中,为了减少网络及磁盘 IO 开销,需要设计出一种新的容错方式,于是才诞生了新的数据结构 RDD. RDD 是一种只读的数据块,可以从外部数据转换而来,你可以对RDD 进行函数操作(Operation),包括 Transformation 和 Action. 在这里只读表示当你对一个 RDD 进行了操作,那么结果将会是一个新的 RDD, 这种情况放在代码里,假设变换前后都是使用同一个变量表示这一 RDD,RDD 里面的数据并不是真实的数据,而是一些元数据信息,记录了该 RDD 是通过哪些 Transformation 得到的,在计算机中使用 lineage 来表示这种血缘结构,lineage 形成一个有向无环图 DAG, 整个计算过程中,将不需要将中间结果落地到 HDFS 进行容错,加入某个节点出错,则只需要通过 lineage 关系重新计算即可.

1). RDD 主要具有如下特点:

1.它是在集群节点上的不可变的、已分区的集合对象;
2.通过并行转换的方式来创建(如 Map、 filter、join 等);
3.失败自动重建;
4.可以控制存储级别(内存、磁盘等)来进行重用;
5.必须是可序列化的;
6.是静态类型的(只读)。
2). RDD 的创建方式主要有2种:

  • 并行化(Parallelizing)一个已经存在与驱动程序(Driver Program)中的集合如set、list;
  • 读取外部存储系统上的一个数据集,比如HDFS、Hive、HBase,或者任何提供了Hadoop InputFormat的数据源.也可以从本地读取 txt、csv 等数据集

3). RDD 的操作函数(operation)主要分为2种类型 Transformation 和 Action.

类别 函数 区别
Transformation Map,filter,groupBy,join, union,reduce,sort,partitionBy 返回值还是 RDD,不会马上 提交 Spark 集群运行
Action count,collect,take,save, show 返回值不是 RDD,会形成 DAG 图,提交 Spark 集群运行 并立即返回结果

Transformation 操作不是马上提交 Spark 集群执行的,Spark 在遇到 Transformation 操作时只会记录需要这样的操作,并不会去执行,需要等到有 Action 操作的时候才会真正启动计算过程进行计算.针对每个 Action,Spark 会生成一个 Job, 从数据的创建开始,经过 Transformation, 结尾是 Action 操作.这些操作对应形成一个有向无环图(DAG),形成 DAG 的先决条件是最后的函数操作是一个Action.

lightbatis 数据库访问包 Lightbatis

相关文章

  • RDD 初识

    RDD(Resilent Distributed Datasets)俗称弹性分布式数据集,是 Spark 底层的分...

  • 2 RDD初识之旅

    By云端上的男人—DT大数据梦工厂 RDD,全称为Resilient Distributed Datasets,是...

  • 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分区比较多...

网友评论

      本文标题:RDD 初识

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