如何处理 azure databricks 笔记本中的异常?

How to handle exceptions in azure databricks notebooks?

我是 Azure 和 Spark 的新手,请求您帮助我为以下场景编写异常处理代码。

我在 3 个不同的笔记本中编写了 HQL 脚本(比如 hql1、hql2、hql3),并在一个主笔记本 (hql-master) 上调用它们,

val df_tab1 = runQueryForTable("hql1", spark)
val df_tab2 = runQueryForTable("hql2", spark)

现在我将 HQL 脚本的输出存储为数据帧,我必须在主笔记本上编写异常处理,如果主笔记本已成功执行所有数据帧(df1_tab,df2_tab) , 成功状态应该被插入突触 table job_status.

否则,如果在 master notebook/dataframe 执行期间有任何 error/exception,则应捕获该错误消息并将故障状态插入突触 table。

我已经有了 success/failure 消息插入的 INSERT 脚本。如果您提供一个示例代码片段,通过它可以实现异常处理部分,那将非常有帮助。谢谢!!

基本上,它只是一个简单的 try/except 代码,像这样:

results = {}
were_errors = False
for script_name in ['script1', 'script2', 'script3']:
  try:    
    retValue = dbutils.notebook.run(script_name)
    results[script_name] = retValue
  except Exception as e:
    results[script_name] = "Error: {e}"
    were_errors = True

if were_errors:
  log failure # you can use data from results variable
else:
  log success