返回信息流我看网上经常有人喜欢在自己的博客里写一句”Spark cache后面不能跟action“。
我研究了半天也没弄明白为什么不能这样。再说cache属于transformation, 如果后面没有action,岂不是永远不会执行吗?
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #36954同步于 2020/7/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
为什么Spark cache后面不能跟action
PMS
2020/7/30镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
意思是不能马上紧跟cache 或者 persist,举个例子:
val RDD = sc.textFile(路径);
// 写法1
val res = RDD.cache().takeSample(参数);
// 写法2
val cacheRDD = RDD.cache();
val cacheRes = cacheRDD.takeSample(参数);
写法1的cache就没啥意义了。。。
我擦。。差点以为是自己弱鸡漏了什么知识点。。。
【 在 AA071427 的大作中提到: 】
: 意思是不能马上紧跟cache 或者 persist,举个例子:
: val RDD = sc.textFile(路径);
: // 写法1
: ...................
...没懂有什么区别。。。求解释的更详细点。。。
【 在 AA071427 的大作中提到: 】
: 意思是不能马上紧跟cache 或者 persist,举个例子:
: val RDD = sc.textFile(路径);
: // 写法1
: ...................
【 在 shubal 的大作中提到: 】
: ...没懂有什么区别。。。求解释的更详细点。。。
:
写法2,cache的RDD用一个变量表示了,后续复用的时候就可以使用。
写法1,尽管cache了,但是没法复用
【 在 AA071427 的大作中提到: 】
:
: 写法2,cache的RDD用一个变量表示了,后续复用的时候就可以使用。
: 写法1,尽管cache了,但是没法复用
谢谢学长,这下明白了