1.cache操作是基于内存的,而checkpoint是基于磁盘进行的,遇到指定存储路径
scala> sc.setCheckpointDir("./ck")
2.cache操作是将job运行时的中间结果缓存下来,而checkpoint在job检查到checkpoint时,重新启动一个job来进行checkpoint的保存。因此通常情况下看到第二次才会生效。
cache结果:
checkpoint结果
3.cache可以在任意位置调用,而checkpoint要求必须在action()之前调用。
4.cache触发之后只会增加血缘关系,而checkpoint则会切断checkpoint之前的血缘关系。