如何终止 Databricks 中的工作

con*_*con 8 python apache-spark databricks

我有一项长期运行的工作,如果满足某些条件,我想终止该工作。传统上这是用 python 完成的,如下所示:

if some_condition:
   exit('job failed!)
Run Code Online (Sandbox Code Playgroud)

这适用于 Python 脚本的传统命令行运行。但是,由于我无法理解的原因,Databricks 不会通过退出来终止脚本。

如何编写 Databricks python 脚本以在满足特定条件时自动停止执行?

小智 3

我认为这是由于 Python REPL 存在于整个堆栈中的位置,导致 exit() 实际上并未退出 Spark 所在的 JVM。您正在寻找退出 Spark 作业的异常可能是 SparkException - https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/SparkException.scala

或者,在 Databricks 中,您可以使用 dbutils.notebook.exit() https://docs.databricks.com/user-guide/notebooks/notebook-workflows.html#notebook-workflows