こんにちは、ちゅらデータshinyashikiです。
この記事は ちゅらデータアドベントカレンダー 21日目の記事となります。
#やりたいこと
Databricksでは作成したジョブをREST APIでコールすることができます。
https://docs.databricks.com/dev-tools/api/latest/jobs.html
今回は、curlコマンドを使ってジョブMyJob(job_id:12345)
をREST APIでコールしてみます。
なお、MyJob
はMyNotebook
をコールしていて、MyNotebook
は渡ってきたパラメータをprintしています。
↓こんな感じですね。
dbutils.widgets.text("param1", "val1")
dbutils.widgets.text("param2", "val2")
param1 = getArgument("param1")
param2 = getArgument("param2")
print('param1={0}, param2={1}'.format(param1, param2))
#アクセストークンの発行
REST APIでジョブをコールする際に、アカウント名とパスワードを指定してリクエストすることもできますが、アクセストークンを使うことが推奨されています。
https://docs.databricks.com/dev-tools/api/latest/authentication.html#use-a-personal-access-token-to-access-the-databricks-rest-api
#ジョブの実行
-
APIエンドポイント
POST http://<databricks-instance>/api/2.0/jobs/run-now
-
リクエストヘッダ
-H 'Authorization: Bearer <発行したアクセストークン>'
-
リクエストボディ
{"job_id":<ジョブID>, "notebook_params":{Notebookに渡すパラメータ(keyと値のペア)}}
早速実行してみます。
リクエストヘッダに発行したアクセストークンを設定し、リクエストボディにJobからNotebookへ渡すパラメータを指定することで、curlコマンドでJobをコールすることができます。
curl
-H POST 'http://<databricks-instance>/api/2.0/jobs/run-now'
-H 'Content-Type: application/json;charset=utf-8'
-d '{"job_id":12345,
"notebook_params": {
"param1":"val111",
"param2":"val222"}
}'
-H 'Authorization: Bearer <発行したアクセストークン>'
#おわりに
こんな感じで作成したJobとNotebookの疎通確認は、あっさりと行うことができます。
ざっくりとした内容ですが、こちらからは以上です。