はじめに
データブリックスのノートブックをリモートから実行出来るようになると、運用フローに取り込んだり、Webアプリなどと連携出来たりと、データやAIの活用の幅が更に広がるかと思います。データブリックスでは、jobとしてノートブックを登録することで、RestAPI経由で実行が可能になります。
今回は、ノートブックに対して、パラーメータを引き渡して実行するまでの流れを見ていきたいと思います。
ノートブックの内容
今回実行するノートブックには、シンプルにcsvを読み取って、左上のフィルターに年度を入力すると、その年度の情報を表示してくれるものになります。Jobでパラメーターを引き渡す際には、このように dbutils.widgets
を使って、パラーメーターを引き渡せるようにしておく必要があります。
Job の作成
ノートブックを RestAPI経由で実行できるように Jobに登録しておきます。今回はJobの作成方法については割愛させていただきます。(@taka_yayoi さんが書かれた記事などご覧ください)
Jobが作成されると、右上に Job ID
が表示されます。こちらは後ほど RestAPI実行時に利用いたします。
(*) RestAPI実行前に、Job実行が成功するか、右上のRun Now
ボタンから試しておくのをお勧めします。
Token の取得
RestAPIの実行の際には、認証として Tokenを利用いたします。
Databricksの左下にあるペインから setting
- User Settings
- Access Tokenタブ
と移動して、Generate New Token
をクリックして新規Tokenを取得してください。
RestAPI実行してみる
準備は完了しました。それでは早速実行してみたいと思います。
今回は、Talend API Tester Free Editionを利用して実行したいと思います。
Method: Post
Schema: https://<databricks-instance>/api/2.1/jobs/run-now
Authorization: Bearer <token>
Content-Type: application/json
Body
{
"job_id": 9843,
"notebook_params": {
"year": "2015"
}
}
パラメーターは、notebook_params
にて引き渡すことが可能です。
入力項目の詳細はこちらのマニュアルをご覧ください。
Responseも 200で返ってきたので Rest実行は成功したようです。
結果の確認
Jobの実行結果は、Job UIの Run タブから確認できます。
View Details
をクリックするとノートブックの実行結果も確認できます。きちんと 2015
年でフィルターされているため、パラメーターも引き渡せたことがわかります。
如何でしょうか? 結構簡単に設定ができました。
RestAPIを実行できるアプリであれば、実行できますので様々なユースケースが広がるのではないでしょうか? 是非お試しください。