火花可以利用工作中持久的rdd吗?

时间:2016-06-09 16:00:41

标签: java apache-spark

当我运行我的火花应用程序时。产生了几个工作。每个工作都有几个阶段。

我正在试验持久的RDD。我将RDD保存到磁盘。但我无法判断它是否在整个工作中被重复使用。

当我查看DAG时,我确实看到green dot表示rdd持续存在。但我也在dag中看到了之前的地图/过滤器等。

例如在Job-0 Dag中我看到:

RandomRDD [0] -> MapParitionRDD [1] -> MapParitionRDD [2] (green) -> Filter [3]...

然后对于Job-1 Dag,我也看到了:

RandomRDD [0] -> MapParitionRDD [1] -> MapParitionRDD [2] (green) -> Filter [3]...

如何判断rdd [0],rdd [1]& rdd [2]是重新计算还是简单脱水?

一般来说,通过查看工作历史,您如何判断rdd是否被重新计算或仅仅是脱水?

1 个答案:

答案 0 :(得分:0)

生成持久化RDD的上游(例如0& 1)和持久化的(2)RDD所需的计算将不会完成。为了测试它,在持久化之前对RDD2进行一些简单的计算,并在持久化之后注意它的时间差异。

Spark Persistence Documentation

  

Spark中最重要的功能之一是跨操作在内存中持久化(或缓存)数据集。当您持久保存RDD时,每个节点都会存储它在内存中计算的任何分区,并在该数据集(或从中派生的数据集)的其他操作中重用它们。这使得未来的行动更快(通常超过10倍)。缓存是迭代算法和快速交互使用的关键工具。