LoginSignup
2
1

More than 3 years have passed since last update.

curlコマンドでDatabricksのJobをコールする

Posted at

こんにちは、ちゅらデータshinyashikiです。
この記事は ちゅらデータアドベントカレンダー 21日目の記事となります。

やりたいこと

Databricksでは作成したジョブをREST APIでコールすることができます。
https://docs.databricks.com/dev-tools/api/latest/jobs.html

今回は、curlコマンドを使ってジョブMyJob(job_id:12345)をREST APIでコールしてみます。
なお、MyJobMyNotebookをコールしていて、MyNotebookは渡ってきたパラメータをprintしています。
↓こんな感じですね。

MyNotebook
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の疎通確認は、あっさりと行うことができます。
ざっくりとした内容ですが、こちらからは以上です。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1