Spark核心概念RDD(Resilient Distributed Datasets)

U4dbsfaasa 9年前

来自: http://my.oschina.net/sulliy/blog/617259


本文介绍Spark的RDD。作为一个概念,RDD本身是与编程语言无关的,你即可以用Scala实现,也可以是Java、C++之类的语言。当初伯克利决定用Scala就是因为它写的代码简单明了。

RDD是一种数据模型,跟分布式的共享内存类似。RDD的特征在于:

  • 是只读的内存数据,但可以持久化

  • 是可以分区数据集合

  • 是一个对象,可以调用它的方法执行一些变换操作(transformations )

  • 是可恢复的。不同与数据多副本的备份方式不同,TDD的恢复可以通过重复执行变换操作(transformations )得到

  • 变换操作(transformations )是延迟操作,只有真正需要的时候才执行

有两种方式创建RDD:

  • 从持久化的数据上创建,比如硬盘、HDFS上的文件

  • 从其他RDD上通过变换(transformations )创建

RDD的适用性:

  • 对数据中的所有元素需要进行大量的相同操作

RDD上可用的变换操作(transformations )和其他操作