gpt4 book ai didi

scala - Spark RDD 生命周期 : whether RDD will be reclaimed out of scope

转载 作者:行者123 更新时间:2023-12-05 04:15:57 26 4
gpt4 key购买 nike

在一个方法中,我创建一个新的RDD,并缓存它,当rdd超出范围后,Spark是否会自动取消持久化RDD?

我是这么想的,但实际上发生了什么?

最佳答案

不,它不会自动取消持久化。

为什么?因为在您看来,RDD 可能不再需要了,但是 Spark 模型不会具体化 RDD,直到需要它们进行转换,所以实际上很难说“我不再需要这个 RDD”了。由于以下情况,即使对您来说,这也可能非常棘手:

JavaRDD<T> rddUnion = sc.parallelize(new ArrayList<T>()); // create empty for merging
for (int i = 0; i < 10; i++)
{
JavaRDD<T2> rdd = sc.textFile(inputFileNames[i]);
rdd.cache(); // Since it will be used twice, cache.
rdd.map(...).filter(...).saveAsTextFile(outputFileNames[i]); // Transform and save, rdd materializes
rddUnion = rddUnion.union(rdd.map(...).filter(...)); // Do another transform to T and merge by union
rdd.unpersist(); // Now it seems not needed. (But is needed actually)

// Here, rddUnion actually materializes, and needs all 10 rdds that already unpersisted. So, rebuilding all 10 rdds will occur.
rddUnion.saveAsTextFile(mergedFileName);
}

将代码示例归功于 spark-user ml

关于scala - Spark RDD 生命周期 : whether RDD will be reclaimed out of scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29813399/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com