博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SparkCore快速入门及介绍
阅读量:3954 次
发布时间:2019-05-24

本文共 763 字,大约阅读时间需要 2 分钟。

什么是RDD

弹性、分布式、数据集(数据存储在内存)

弹性的,RDD中的数据可以保存在内存中或磁盘里面
分布式存储,可以用于分布式计算
集合,可以存放很多元素
一个不可变,可分区,里面的元素可并行计算的集合

RDD的主要属性

  1. 数据集的基本组成但是一个组分片或一个分区列表,每个分片都会被一个计算任务处理,分区数量决定并发度。用户可以在创建RDD是指定RDD的分片个数,如果没有指定,那么久采用默认值(cpu 盒数)
  2. 一个函数会被作用在每一个分区。spark中RDD的计算一分区为单位,函数会被作用到每个分区上
  3. 一个RDD会被依赖于其他对多个RDD。RDD的每次转换都会生成一个新的RDD,所以RDD之间就会形成类型与流水线样的前后依赖关系。在部分分区数据丢失是,spark可以通过可以依赖重新计算丢失的分区数据,而不是对RDD的所有分区进行重新计算。
  4. KV类型的RDD会有一个partitioner函数非kay-value的RDD的partitioner的值是None,partitioner函数决定了RDD本身的分区数量,也决定了Parent RDD shuffle 输出的分区数量
  5. 每个RDD 维护一个列表,每个partition 的位置存储在一个列表中。

RDD的方法/算子分类

RDD的算子分为两类:

  1. Tarnsformation 转换操作:返回一个新的RDD
  2. Action 动作操作:返回不是RDD(无返回值或其他的)

如何理解spark惰性计算?

  1. RDD中的所以转换都是惰性/延迟执行的,也就是或并不会直接计算。
  2. 遇到Action动作,这些转换才真的运行。
之所以使用惰性求值/延迟执行,是因为这样可以在Action是对RDD操作形成DAG有向无环图进行stage的划分和并行优化,这样设置让spark更加有效运行

转载地址:http://gakzi.baihongyu.com/

你可能感兴趣的文章
Ubuntu下几个重要apt-get命令用法与加速UBUNTU
查看>>
Ubuntu中网页各种插件安装命令
查看>>
使用tar命令备份Ubuntu系统
查看>>
ubuntu flash 文字乱码解决方案
查看>>
在ubuntu中运行exe文件
查看>>
ubuntu安装命令
查看>>
和上司沟通必备8个黄金句
查看>>
联系查看两张卡的未接电话记录
查看>>
Python 3 之多线程研究
查看>>
APP第三方登录实现步骤
查看>>
KVO & KVC 比较 - KVC
查看>>
iOS-tableView联动
查看>>
iOS--Masonry解决 tableViewCell 重用时约束冲突
查看>>
git 与 svn 的主要区别!
查看>>
iOS-截屏,从相册选择图片,制作磨砂效果图片
查看>>
iOS-截取字符串中两个指定字符串中间的字符串
查看>>
数据库-数据库操作(使用FMDB)
查看>>
FMDB介绍以及在 swift 中的数据库操作
查看>>
iOS运行时机制(附Demo演练)
查看>>
宽字符串输出问题
查看>>