5.3 RDD 的转换(transformation)
在 RDD 上支持 2 种操作:
transformation从一个已知的 RDD 中创建出来一个新的 RDD 例如:
map就是一个transformation.action在数据集上计算结束之后, 给驱动程序返回一个值. 例如:
reduce就是一个action.
本节学习 RDD 的转换操作, Action操作下节再学习.
在 Spark 中几乎所有的transformation操作都是懒执行的(lazy), 也就是说transformation操作并不会立即计算他们的结果, 而是记住了这个操作.
只有当通过一个action来获取结果返回给驱动程序的时候这些转换操作才开始计算.
这种设计可以使 Spark 运行起来更加的高效.
默认情况下, 你每次在一个 RDD 上运行一个action的时候, 前面的每个transformed RDD 都会被重新计算.
但是我们可以通过persist (or cache)方法来持久化一个 RDD 在内存中, 也可以持久化到磁盘上, 来加快访问速度. 后面有专门的章节学习这种持久化技术.
根据 RDD 中数据类型的不同, 整体分为 2 种 RDD:
Value类型Key-Value类型(其实就是存一个二维的元组)