总体来说有两点:
1、Spark快的原因主要是源于DAG的计算模型,DAG相比Hadoop的MapReduce在大多数情况下可以减少shuffle的次数
2、Spark会将中间计算结果在内存中进行缓存。
针对于DAG(有向无环图)模型,Spark的DAG实质上就是把计算和计算之间的编排变得更为细致紧密,使得很多MR任务中需要落盘的非Shuffle操作得以在内存中直接参与后续的运算,并且由于算子粒度和算子之间的逻辑关系使得其易于由框架自动地优化(换言之编排得好的MR其实也可以做到)
以上内容参考
1、https://www.jianshu.com/p/5f9f4ca10414
2、https://blog.csdn.net/weixin_42307036/article/details/112246904