以下内容均摘抄自《Spark快速大数据分析》
运行规则
总的来说,每个 Spark 程序或 shell 会话都按如下方式工作。
- 从外部数据创建出输入 RDD。
- 使用诸如 filter() 这样的转化操作对 RDD 进行转化,以定义新的 RDD。
- 告诉 Spark 对需要被重用的中间结果 RDD 执行 persist() 操作。
- 使用行动操作(例如 count() 和 first() 等)来触发一次并行计算, Spark 会对计算进行 优化后再执行。
RDD创建
RDD操作
转化操作
返回一个新的 RDD 的操作,比如 map() 和 filter()。
转化出来的 RDD 是惰性求值的,只有在行动操作中用到这些 RDD 时才会被计算。
行动操作
行动操作则是向驱动器程序返回结果或把结果写入外部系统的操作,会触发实际的计算,比如 count() 和 first()。
转化操作返回的是 RDD,而行动操作返回的是其他的数据类型。
惰性求值
RDD 的转化操作都是惰性求值的。这意味着在被调用行动操作之前 Spark 不会开始计算。
惰性求值意味着当我们对 RDD 调用转化操作(例如调用 map())时,操作不会立即执行。相反, Spark 会在内部记录下所要求