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