Apache spark 如何获得中间结果?

Apache spark 如何获得中间结果?,apache-spark,Apache Spark,我正在使用as MapReduce实现,我想知道是否有一种方法可以获得中间结果。简单API允许在所有映射步骤完成后,以最简单的形式从触发应用程序收集结果,例如 val results = mapResult.collect() 我有兴趣收集中间地图结果,因为他们完成。有没有办法做到这一点?您可以使用dataframe的cache()方法来缓存计算结果,因此当您稍后调用操作时,它将使用缓存的结果,而不是重新计算DAG。比如: # caches the result so the action c

我正在使用as MapReduce实现,我想知道是否有一种方法可以获得中间结果。简单API允许在所有映射步骤完成后,以最简单的形式从触发应用程序收集结果,例如

val results = mapResult.collect()

我有兴趣收集中间地图结果,因为他们完成。有没有办法做到这一点?

您可以使用dataframe的
cache()
方法来缓存计算结果,因此当您稍后调用
操作时,它将使用缓存的结果,而不是重新计算DAG。比如:

# caches the result so the action called after this will use this cached
# result instead of re-computing the DAG
results.cache() 

results.show(1)
稍后,您可能需要释放用于缓存结果的内存,方法是:

results.unpersist()

当你谈论中间结果时,你到底指的是什么?在开始reduce操作之前,您是否尝试使用map操作的数据结果?确切地说,假设我得到一堆MSE,我需要最小值,但这需要几天的时间。如果我有中间结果,我可以找出到目前为止的最小MSE,而不是等待几天才能得到一个想法