RDD

1.RDD的定义

    RDD(Resilient Distributed Dataset) ,分布式弹性数据集,是Spark上的一个核心抽象表示用于并行计算的,不可修改的,对数据集合进行分片的数据结构。任何数据在Spark中都被表示为RDD。从开发者角度来看, RDD是Spark的一个对象,它本身存在于内存中,如读文件是一个RDD,对文件计算也是一个RDD,结果集也是一个RDD,不同的分片、数据之间的依赖、Key-value类型的map数据都可以看做RDD。从编程的角度来看,RDD可以简单看做一个数据。和普通数组的区别是,RDD中的数据是分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理。因此,Spark应用程序就是把需要处理的数据转换为RDD,然后对RDD进行一系列的变换和操作从而得到结果。


2.RDD 的特点

   (1)它具备像MapReduce等数据模型的容错特性,并且允许开发人员在大型集群上执行基于内存的计算。RDD提供了一种高度受限的共享内存,即RDD是只读的,并且只能通过其他RDD上的批量操作来创建。

   (2)RDD是只读的、分区记录的集合。RDD只能基于稳定物理存储中的数据集和其他已有的RDD上执行确定性操作来创建。这些确定性操作称作为转换,如map、filter、groupBy、join。

   (3)RDD不需要物化。RDD含有如何从其他RDD衍生出本RDD的相关信息,据此可以从物理存储的数据计算出相应的RDD分区

   (4)RDD作为数据结构,本质上是一个只读的分区记录集合。一个RDD可以包含多个分区,每个分区就是一个dataset片段。RDD可以相互依赖。如果RDD的每个分区最多只能被一个Child RDD的一个分区使用,则称之为narrow dependency;若多个Child RDD 分区都可以依赖,则称之为wide dependency。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值