在这行中,哪个RDD被持久化?dropResultsN还是dataSetN?
dropResultsN = dataSetN.map(s -> standin.call(s)).persist(StorageLevel.MEMORY_ONLY());
问题来自Apache Spark对JavaRDD上每个操作的计时,我仍然在寻找如何最好地计时RDD创建的核心问题的好答案。
dropResultsN
是持久化的RDD(这是通过将dataSetN
映射到方法standin.call()
产生的RDD)。
我在O'Reilly的Learning Spark中找到了一个很好的例子:
这是Scala中的例子3-40。持久()(假设Java是相同的)
import org.apache.spark.storage.StorageLevel
val result = input.map( x => x*x )
result.persist(StorageLevel.[<your choice>][1])
学习火花注意:注意,我们在第一个操作之前的RDD调用了持续()。它自己的持续()调用不会强制求值。
我注意到,在这个例子中,持久化在下一行,我认为这比我问题中的代码要清楚得多。