要知道区别,就要首先知道实现的原理和使用的场景
cache就是讲共用的或者重复使用的RDD按照持久化的级别进行缓存。
checkpoint 就是将业务非常长的逻辑计算的中间结果缓存到HDFS上,他的实现原理是:
首先找打stage最后的finalRDD,然后按照RDD的依赖关系回溯,找到使用checkpoint的RDD。
然后标记这个checkpoint的RDD
重新启动一个线程将checkpoint之前的RDD缓存到HDFS上面。
最后RDD的依赖关系从checkpoint的位置切断
为了更好提高spark的性能。可以在使用checkpoint之前,先cache一下。