追記
環境によっては下記のようなエラーがでるようです。代替案を、Databricksにてdbutils.widget により RUN IDを取得する方法 - Qiita にて記載しました。
py4j.security.Py4JSecurityException: Method public java.lang.String com.databricks.backend.common.rpc.CommandContext.toJson() is not whitelisted on class class com.databricks.backend.common.rpc.CommandContext
概要
Databricksにてdbutilsにより実行したノートブックのRUN IDを取得するには、dbutilsに実行されるノートブックにてリターン値としてRUN IDを返すことで可能です。リターン値を設定するには、dbutils.notebook.exitを利用します。
下記がサンプルコードです。
import json
notebook_info = json.loads(dbutils.notebook.entry_point.getDbutils().notebook().getContext().toJson())
try:
runId = notebook_info["tags"]["runId"]
except:
runId = -1
dbutils.notebook.exit(runId)
Githubにサンプルノートブック群での実行手順を本記事で紹介します。
手順
1. ノートブックのインポート
https://github.com/manabian-/databricks_tecks_for_qiita/blob/main/tecks/get_runid_when_using_dbutilsnotebookrun/dbc/get_runid_when_using_dbutilsnotebookrun.dbc