你如何过早地优雅地结束Spark应用程序?

时间:2017-12-11 18:24:56

标签: scala apache-spark

如果我有一个空的RDD,我希望我的spark应用程序优雅地结束。在scala中执行此操作的最佳方法是什么?

当我使用时:

if (myRDD.isEmpty) { sparkSession.stop() }

Spark应用程序尝试继续并抛出IllegalStageException

之后我需要System.exit(0)吗?我之后应该添加return吗?

1 个答案:

答案 0 :(得分:1)

sparkSession.stop()只会使Spark会话无效,但不会停止作业。这就是您获得IllegalStageException的原因,因为作业(仍在运行!)尝试访问已经失效的会话。

我建议您使用return或提出异常以提前结束工作,它比System.exit(0)

更安全