Оператор Livy показывает состояние «отключено» для системы.выход(0)

#livy

Вопрос:

Вот мой пример кода, который я отправляю через airflow

 object Test {

  val log: Logger = CustomLogger.getLogger(this.getClass.getName)

  def main(args: Array[String]): Unit = {
    val spark = SparkCommon.getSparkSession("test")
    val splitted = args(0).split("[|]").toList
    splitted match {
      case returnOrExit :: exitCode :: shutdownSpark :: Nil =>
        (returnOrExit, exitCode.toInt, shutdownSpark.toBoolean) match {
          case ("return", _, true) =>
            // Batch status: Success
            log.info("Shutdown spark amp; return")
            spark.stop()
          case ("return", _, false) =>
            // Batch status: Success
            log.info("Only return")
          case ("exit", exitCode, true) =>
            // Batch status: dead (exit, 0, true)  // **CASE 1
            log.info(s"Shutdown spark amp; exit. exitCode = $exitCode")
            spark.stop()
            System.exit(exitCode)
          case ("exit", exitCode, false) =>
            // Batch status: dead (exit, 0, false) // **CASE 2
            log.info(s"Only exit. exitCode = $exitCode")
            System.exit(exitCode)
        }
    }
  }

}
 

Для случая CASE 1 amp; CASE 2 где я exit с 0 кодом выхода пакетного процесса в конечном итоге получаю статус dead , который, в свою очередь, приводит к сбою задачи воздушного потока

Я ожидаю, что работа должна провалиться только для non-zero exit status и должна увенчаться exitStatus of 0 успехом . Есть ли способ решить эту проблему?

Ч/б моя работа выполняется в emr-6.2.0 которой есть Livy 0.7.0 , и я использую этого оператора воздушного потока для отправки задания