我正在使用Apache Spark作为MapReduce实现,并且想知道是否有办法获得中间结果。一旦所有映射步骤完成,简单的API允许collect
来自触发应用程序的结果,最简单的形式,例如。
val results = mapResult.collect()
我有兴趣在完成时收集中间地图结果。有没有办法实现这个目标?
答案 0 :(得分:1)
您可以使用数据框的cache()
方法来缓存计算结果,因此,当您稍后调用action
时,它将使用缓存的结果而不是重新计算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()