数据岗位面试题更新 2026-08-05

请阐述 Spark 惰性求值机制的具体含义及其运作原理。

数据技术原理

考察说明

考察对 Spark 核心执行模型 Lazy Evaluation 的理解,以及它与传统 Eager Evaluation 的本质区别。

回答思路

  1. 【回答框架 1】惰性求值是一种计算策略:表达式不立即求值,而是延迟到真正需要结果时才执行。Spark 利用该机制将 RDD 上的转换操作(如 map、filter)构建成 DAG 血缘,而不立即触发实际计算。
  2. 【回答框架 2】Spark 中操作分为转换(Transformation)和行动(Action)。转换操作只记录依赖关系,返回新的 RDD;行动操作(如 collect、count)才会触发 DAG 的调度与执行。这是惰性求值的实现基石。
  3. 【回答框架 3】惰性机制的好处包括:减少磁盘和内存 I/O、避免不必要的中间结果;能够合并管道操作;优化执行计划,如谓词下推、阶段剪枝,提升整体性能。同时支持容错恢复,通过血缘可以重新计算丢失的分区。
  4. 【关键点 1】惰性求值将多个转换合并为一个作业,减少计算开销。
  5. 【关键点 2】行动操作是任务触发的唯一入口。
  6. 【关键点 3】不执行转换操作不会产生任何结果,也不存储中间数据。
  7. 【关键点 4】血缘关系使得失效数据可以自动恢复。
  8. 【易错点 1】误以为所有操作都立即执行,混淆转换与行动操作。
  9. 【易错点 2】在转换操作中执行重计算可能导致性能问题,因为惰性计算会多次触发。
  10. 【易错点 3】依赖外部可变变量时,延迟执行可能产生不一致结果。