为什么有时候 触发多次action的时候,后边的会比前边的快。
比如 wordcount,第一次 collect的时候 6秒 第二次collect只需要3秒 为什么????
因为,spark在shuffle真正触发的时候,会把shuffle结果缓存到磁盘(/tmp/spark**********/****mgr/********下),下次action的时候,shuffle之前的数据就不需要执行了,就会被skip掉,所以变快了。
那如果,tmp下的缓存数据丢失了呢? spark会报错,但是 他还会帮你执行出结果来,就是重新算一边shuffle之前的过程。
本文解释了为何在Spark中重复执行相同操作时速度会加快。关键在于Spark会将shuffle后的结果缓存在磁盘上,再次执行时可以跳过之前的计算过程。即使缓存丢失,Spark也会重新计算shuffle过程以确保任务完成。
7036

被折叠的 条评论
为什么被折叠?



