从SQL Notebook调用dbutils.notebook.exit

问题描述

我刚接触数据砖,并且有一个查询

我有一个计划工作,可以调用sql笔记本

`try:
    dbutils.notebook.run("/01. SMETS1Mig/" + dbutils.widgets.get("env_parent_directory") + "/02 Processing Curated Staging/02 Build - Parameterised/MMT Processing - Migration Selection",6000,{
        "env_ingest_db": dbutils.widgets.get("env_ingest_db"),"env_stg_db": dbutils.widgets.get("env_stg_db"),"env_tech_db": dbutils.widgets.get("env_tech_db")
      })
except Exception as error:
# 611 Start  
#    print
    sys.exit('Failure in MMT Processing - Migration Selection ({error})')
# 611 End`

sql笔记本有大约30个cmd单元,可以执行各种任务。我想在顶部添加一个cmd单元格,如果结果为0,那么它将退出笔记本并导致作业失败。新的cmd可以使用以下逻辑

SELECT count(1) 
FROM $env_tech_db.tbl_tech_daily_demand_import ddi 
WHERE string(ddi.week_starting) = rtrim((
         SELECT value 
         FROM $env_tech_db.tbl_tech_admin_data WHERE type = 'Selection_Week' )) 
AND author = 'DCC';

我一直在阅读有关dbutils.notebook.exit的信息,但感到困惑。有没有一种简单的方法可以完成我要问的事情。我只允许使用sql或python

预先感谢

解决方法

你可以在你的 sql notebook 中创建一个 python 单元来调用 dbutils.notebook.exit("fail")

用魔术命令创建一个python单元 %python 在单元格的顶部。

然后检查调用笔记本中的返回码

return_code = dbutils.notebook.run(...)