Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala Spark:使用Futures将在集群模式下提前结束作业_Scala_Apache Spark - Fatal编程技术网

Scala Spark:使用Futures将在集群模式下提前结束作业

Scala Spark:使用Futures将在集群模式下提前结束作业,scala,apache-spark,Scala,Apache Spark,我有一些处理队列的Spark代码;获取队列的第一个元素,使用scala Futures构造进行处理,并在未来完成时获取下一个元素。代码看起来(简化)如下: import scala.concurrent.ExecutionContext.Implicits.global def nextExperiment() { Future { ... }.onComplete(x => nextExperiment()) } 在集群(而不是本地)上运行此代码时,它将只开始处理队列的第一个元素

我有一些处理队列的Spark代码;获取队列的第一个元素,使用scala Futures构造进行处理,并在未来完成时获取下一个元素。代码看起来(简化)如下:

import scala.concurrent.ExecutionContext.Implicits.global

def nextExperiment() {
  Future { ... }.onComplete(x => nextExperiment())
}
在集群(而不是本地)上运行此代码时,它将只开始处理队列的第一个元素,然后在完成队列中的所有元素之前快速关闭上下文。但是,如果我删除
Future{}
结构,它会完美地完成它应该做的事情


这是为什么?

好吧,你没有显示你在哪里调用下一次体验。但是根据您看到的情况,程序可能只是从这个调用返回,继续执行到程序结束,然后完成。如果您想在程序本身完成之前等待所有期货完成