【发布时间】:2016-07-11 17:50:43
【问题描述】:
我正在构建一个通用函数,它接收 RDD 并对其进行一些计算。由于我在输入 RDD 上运行了多个计算,因此我想缓存它。例如:
public JavaRDD<String> foo(JavaRDD<String> r) {
r.cache();
JavaRDD t1 = r... //Some calculations
JavaRDD t2 = r... //Other calculations
return t1.union(t2);
}
我的问题是,因为r 是给我的,所以它可能已经被缓存了,也可能没有被缓存。如果它被缓存并且我再次对其调用缓存,spark 会创建一个新的缓存层,这意味着在计算t1 和t2 时,我将在缓存中有两个r 实例?还是 spark 知道 r 被缓存并忽略它?
【问题讨论】:
标签: java caching apache-spark rdd