Spark RDD(英语:Resilient Distributed Dataset,弹性分布式数据集)是一种数据存储集合。只能由它支持的数据源或是由其他RDD经过一定的转换(Transformation)来产生。在RDD上可以执行的操作有两种转换(Transformation)和行动(Action),每个 RDD 都记录了自己是如何由持久化存储中的源数据计算得出的,即其血统(Lineage)。

RDD [1]
开发者加州大学柏克莱分校AMPLab, Databricks
编程语言Scala
操作系统跨平台
网站spark.apache.org

转换

  • map(func):返回一个新的分布式数据集,由每个原元素经过func函数处理后的新元素组成
  • filter(func):返回一个新的数据集,由经过func函数处理后返回值为true的原元素组成
  • flatMap(func):类似于map,但是每一个输入元素,会被映射为0个或多个输出元素,因此,func函数的返回值是一个seq,而不是单一元素

行动

  • reduce(func):通过函数func聚集数据集中的所有元素,这个函数必须是关联性的,确保可以被正确的并发执行
  • collect():在driver的程序中,以数组的形式,返回数据集的所有元素,这通常会在使用filter或者其它操作后,返回一个足够小的数据子集再使用

依赖

  • 宽依赖:父RDD中的分片可能被子 RDD 中的多个分片所依赖
  • 窄依赖:父RDD的每个分片至多被子 RDD 中的一个分片所依赖

参考文献

  1. ^ [1]