Apache spark spark异步接口的部分结果?

Apache spark spark异步接口的部分结果?,apache-spark,Apache Spark,是否有可能取消一个spark future,并使用处理过的元素获得更小的RDD Spark异步操作在此处“记录在案” 未来本身也有一系列丰富的功能 我所考虑的用例是拥有一个非常巨大的映射,它可以在30分钟的计算后中止,并且仍然收集——甚至迭代或保存对象文件——已经有效映射的RDD的子集 FutureAction.cancel会导致失败(请参阅),因此无法使用它获得部分结果。我认为没有办法通过异步API来实现这一点 相反,您可以在30分钟后停止处理输入 val stopTime = Syste

是否有可能取消一个spark future,并使用处理过的元素获得更小的RDD

Spark异步操作在此处“记录在案”

未来本身也有一系列丰富的功能


我所考虑的用例是拥有一个非常巨大的映射,它可以在30分钟的计算后中止,并且仍然收集——甚至迭代或保存对象文件——已经有效映射的RDD的子集

FutureAction.cancel
会导致失败(请参阅),因此无法使用它获得部分结果。我认为没有办法通过异步API来实现这一点

相反,您可以在30分钟后停止处理输入

val stopTime = System.currentTimeMillis + 30 * 60 * 1000 // 30 minutes from now.
rdd.mapPartitions { partition =>
  if (System.currentTimeMillis < stopTime) partition.map {
    // Process it like usual.
    ???
  } else {
    // Time's up. Don't process anything.
    Iterator()
  }
}
val stopTime=System.currentTimeMillis+30*60*1000//30分钟后。
rdd.mapPartitions{partition=>
if(System.currentTimeMillis
请记住,这只会在所有洗牌依赖项完成后产生影响。(即使30分钟过去了,它也无法停止执行洗牌。)

:-)我想所有异步函数也未经测试,至少在生产现场是这样。