Apache Spark 我在这里坚持什么?

Apache Spark what am I persisting here?

在这一行中,持久化了哪个RDD? dropResultsN 或 dataSetN?

dropResultsN = dataSetN.map(s -> standin.call(s)).persist(StorageLevel.MEMORY_ONLY());

问题是 Apache Spark timing forEach operation on JavaRDD 的一个附带问题,我仍在寻找如何最好地安排 RDD 创建时间这一核心问题的好答案。

dropResultsN 是持久化的 RDD(它是将 dataSetN 映射到方法 standin.call() 上产生的 RDD)。

我在 O'Reilly 的 Learning Spark 中找到了一个很好的例子:

示例3-40。 Scala 中的 persist() (假设 Java 相同)

import org.apache.spark.storage.StorageLevel

val result = input.map( x => x*x )
result.persist(StorageLevel.[<your choice>][1])

NOTE in Learning Spark: Notice that we called persist() on the RDD before the first action. The persist() call on its own doesn't force evaluation.

我的注意,在这个例子中,持久化在下一行,我认为这比我的问题中的代码更清楚。