Spark Core 与 RDD 入门
Spark 的核心抽象是 RDD(弹性分布式数据集)。理解了 RDD 和它的 Transformation/Action 操作,就掌握了 Spark 的灵魂。
一、Spark 为什么快
- 1.1 内存计算——中间结果不进磁盘
- 1.2 DAG 调度——优化执行计划
- 1.3 与 MapReduce 的性能对比
二、RDD——弹性分布式数据集
- 2.1 什么是 RDD——不可变的分布式集合
- 2.2 分区——并行计算的基本单位
- 2.3 容错——Lineage 血统重算
- 2.4 依赖关系——窄依赖 vs 宽依赖
三、Transformation(转换)
- 3.1
map/filter/flatMap - 3.2
reduceByKey/groupByKey——注意 Shuffle - 3.3
join/union/distinct - 3.4 惰性求值——Transform 不立即执行
四、Action(动作)
- 4.1
count/collect/take - 4.2
saveAsTextFile/foreach - 4.3 Action 触发真正的计算
五、一个 WordCount 示例
- 5.1 从文件创建 RDD
- 5.2 flatMap → map → reduceByKey
- 5.3 保存结果
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 谜思录!