什么是RDD

RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。

RDD的五大基本属性

1)A list of partitions 一组分片(Partition),即数据集的基本组成单位。对于RDD来说,每个分片都会被一个计算任务处理,并决定并行计算的粒度。用户可以在创建RDD时指定RDD的分片个数,如果没有指定,那么就会采用默认值。默认值就是程序所分配到的CPU Core的数目。

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

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

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

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

什么是RDD以及RDD的五大基本属性相关推荐

  1. 什么是RDD?RDD的特点?RDD与Dataframe的关系?

    一.什么是RDD? RDD是Spark计算的时候操作的数据集,全称是Resilient Distributed Datasets(弹性分布式数据集). 数据是分布在多台机器上的,为了好处理,将这些分布 ...

  2. RDD编程-RDD算子的使用

    文章目录 前言 一.map 二.mapPartition 三.mapPartitionsWithIndex 四.flatMap 五.glom 六.mapValues 七.filter 八.keyBy ...

  3. 学习笔记Spark(四)—— Spark编程基础(创建RDD、RDD算子、文件读取与存储)

    文章目录 一.创建RDD 1.1.启动Spark shell 1.2.创建RDD 1.2.1.从集合中创建RDD 1.2.2.从外部存储中创建RDD 任务1: 二.RDD算子 2.1.map与flat ...

  4. Spark中,RDD概述(五大属性,弹性介绍,5个特性)

    1 什么是RDD RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark 中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的集合.在Spa ...

  5. Spark详解(三):Spark编程模型(RDD概述)

    1. RDD概述 RDD是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现.RDD是Spark最核心的东西,它表示已被分区,不可变的并能够被并行 ...

  6. spark如何防止内存溢出_Spark 理论基石 —— RDD

    概述 RDD,学名可伸缩的分布式数据集(Resilient Distributed Dataset).是一种对数据集形态的抽象,基于此抽象,使用者可以在集群中执行一系列计算,而不用将中间结果落盘.而这 ...

  7. python spark进行大数据分析_第2天Python实战Spark大数据分析及调度-RDD编程

    Spark提供的主要抽象是resilient distributed dataset(RDD)弹性分布式数据集,它是跨集群节点划分的元素的集合,可以并行操作.通过从Hadoop文件系统(或任何其他Ha ...

  8. Spark 的核心 RDD 以及 Stage 划分细节,运行模式总结

    精选30+云产品,助力企业轻松上云!>>> 阅读文本大概需要 5 分钟. 以下内容,部分参考网络资料,也有自己的理解, 图片 99% 为自己制作.如有错误,欢迎留言指出,一起交流. ...

  9. 一文搞清楚 Spark RDD到底是什么?

    阅读文本大概需要 5 分钟. 以下内容,部分参考网络资料,也有自己的理解, 图片 99% 为自己制作.如有错误,欢迎留言指出,一起交流. 1简介 Apache Spark 是专为大规模数据处理而设计的 ...

最新文章

  1. html 制作条形图,Highcharts 基本条形图
  2. windows 禁用ipv6服务_39.Dism++ Windows系统简洁优化
  3. ubuntu 禁用透明大页_MySQL InnoDB 透明页压缩(Page Compression)
  4. MTK 驱动(79)---如何调整CPU corenum, freq, policy
  5. [抄]外部奖励对内在动机的侵蚀
  6. GitHub标星2600,从零开始的深度学习实用教程 | PyTorch官方推荐
  7. 安卓手机小说阅读器_粉笔免费小说阅读器app下载-粉笔免费小说阅读器APP手机版v1.0.1...
  8. Python API接口压力测试简单实现(并发测试)
  9. 趋势交易大师php,大道至简——多级别均线共振交易系统
  10. 华为云服务器使用心得
  11. 查询毕业证书的(学信网查)
  12. linux需要固态硬盘,SSD固态磁盘即将挂掉的5种征兆
  13. Xshell6安装与使用
  14. Anbox之构建android.img(三)
  15. 一起学libcef--正确关闭你创建的浏览器
  16. 服务器raid卡安装在什么位置,安装raid卡
  17. 使用fastjson字符串对象互转
  18. 163邮箱申请,163.net邮箱成2021年黑马品牌!
  19. Ubuntu16.04(Xenial Xerus 好客的非洲地松鼠)更换pip源
  20. 接口基本知识 2016年12月24日

热门文章

  1. ps -ef 和ps -aux 和ps aux
  2. 最新蓝色网址/公众号导航站源码+Yzmcms内核开发
  3. C#与数据库访问技术总结(三)之 Connection对象的常用方法
  4. JDK动态代理(通俗易懂,小白首选)
  5. kubeadm修改默认证书有效期,解决证书过期问题
  6. ElasticSearch分页查询的3个坑
  7. 一个技术青年的网络失足
  8. Cisco Firepower 2100 Series FTD Software 7.1.0 ASA Software 9.17.1 下载
  9. select2如何清除选择项
  10. 【深度学习】大牛的《深度学习》笔记,Deep Learning速成教程