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

vwhgwdsa  于 2021-07-14  发布在  Spark
关注(0)|答案(1)|浏览(508)

我是azure和spark的新手,请求您帮助编写以下场景的异常处理代码。
我在3个不同的笔记本上编写了hql脚本(比如hql1、hql2、hql3),并在一个主笔记本(hql master)上调用它们,

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

现在我将hql脚本的输出存储为dataframe,并且我必须在主笔记本上编写异常处理,如果主笔记本已经成功地执行了所有的dataframe(df1\u tab,df2\u tab),那么一个成功状态应该被插入synapse表job\u status。
否则,如果在主笔记本/dataframe的执行过程中有任何错误/异常,那么应该捕获该错误消息并将失败状态插入synapse表。
我已经有成功/失败消息插入的插入脚本。如果您能提供一个示例代码片段,通过它可以实现异常处理部分,这将非常有帮助。谢谢您!!

dzjeubhm

dzjeubhm1#

基本上,这只是一个简单的问题 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

相关问题