首页 > 系统服务 > 详细

【spark】cache不一定使用的场景

时间:2021-05-08 16:41:17      阅读:26      评论:0      收藏:0      [点我收藏+]

背景

spark的transform是lazy模式的,只有当action时才会触发真正的执行。大部分情况下,如果某个df、rdd下游有多个链路,为了避免重复执行,一般会对该算子进行cache

场景

在某个stage阶段,存在一个RDD,transform完成后可能存在数亿的结果

在调试阶段,我们需要预览其数据,需要多次使用rdd.take(10).foreach(println)。

大部分情况我们会对rdd进行cache。但实际情况是,该rdd前有10多个map之类的窄依赖。当使用cache之后,在使用rdd.take(10)时会触发action,cache会将该stage阶段所有的数据执行一遍。而去除cache后,该stage阶段,只会取前10条计算。

 

因此,当原始数据巨大时,而action使用take等操作时,其执行时间会远远小于cache所带来的时间 

【spark】cache不一定使用的场景

原文:https://www.cnblogs.com/zhouwenyang/p/14743945.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!