问题描述
我有一个包含 try/catch/finally 块的 Spark 应用程序。在 finally 块中,我正在写入审计表。
main{
try {}
catch {}
finally {
write to audit table
sparkSession.close()
}
}
因此,当应用程序抛出异常并在 catch 块中成功捕获时,应用程序不会出错,而是简单地写入审计表并关闭 spark 会话。因此,存在这样一种情况,即应用程序将在没有实际完成任务的情况下完成,而当错误被成功捕获时就会发生这种情况。
我正在尝试将此应用程序包含在 oozie 工作流内的 spark 操作中,并具有相关操作。仅当前面的应用程序成功完成时,相关操作才应运行。所以我的问题是这里最好的方法是什么?
我的第一个想法是为 spark 应用程序提供一个非零状态代码,以防捕获错误,但我想知道这是要走的路,还是有更好的方法来处理这个特定于 oozie 的问题。
一个更普遍的问题是 oozie 如何“知道”某个操作导致错误/成功?
谢谢, _SD
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)