メインコンテンツまでスキップ

アセットバンドルを使用したPython wheelファイルの開発Databricks

この記事では、 Databricks Asset Bundle プロジェクトの一部として Python wheel ファイルをビルド、デプロイ、実行する方法について説明します。 「Databricks アセットバンドルとは」を参照してください。

JAR をビルドして Unity Catalog にアップロードする構成例については、「 JAR ファイルを Unity Catalog にアップロードするバンドル」を参照してください。

必要条件

  • Databricks CLI バージョン 0.218.0 以降。 インストールされている Databricks CLI のバージョンを確認するには、コマンド databricks -vを実行します。 Databricks CLI をインストールするには、「 Databricks CLI のインストールまたは更新」を参照してください。
  • リモートワークスペースでは、ワークスペースファイルが有効になっている必要があります。 「ワークスペースファイルとは」を参照してください。

決定する事項: バンドルを手動で作成するか、テンプレートを使用して作成します

テンプレートを使用してスターターバンドルを作成するか、バンドルを手動で作成するかを決定します。 テンプレートを使用してバンドルを作成する方が迅速かつ簡単ですが、バンドルによって不要なコンテンツが作成される場合があり、バンドルのデフォルト設定を実際のアプリケーション用にさらにカスタマイズする必要があります。 バンドルを手動で作成すると、バンドルの設定を完全に制御できますが、すべての作業を最初から行うため、バンドルの仕組みに精通している必要があります。 次のいずれかの手順セットを選択します。

テンプレートを使用してバンドルを作成する

これらの手順では、Databricks Pythonの デフォルト バンドル テンプレートを使用してバンドルを作成します。次の手順では、 ファイルに組み込むファイルで構成されるバンドルと、このPython wheel Databricksファイルを作成する ジョブの定義について説明します。Python wheel次に、デプロイされたファイルを検証、デプロイ、および Databricks ワークスペース内の Python wheel ジョブから Python wheel ファイルにビルドします。

の Databricksデフォルト バンドル テンプレートは、Pythonsetuptools を使用して ファイルをビルドします。Python wheel代わりに Poetry を使用して Python wheel ファイルをビルドする場合は、このセクションの後半の手順に従って、setuptools 実装を Poetry 実装にスワップアウトします。

ステップ 1: 認証を設定する

この手順では、開発用マシン上の Databricks CLI と Databricks ワークスペースの間の認証を設定します。 この記事では、OAuth ユーザーマシン (U2M) 認証と、認証に DEFAULT という名前の対応する Databricks 構成プロファイルを使用することを前提としています。

注記

U2M認証は、これらの手順をリアルタイムで試すのに適しています。 完全に自動化されたワークフローの場合、Databricks では、代わりに OAuth マシン間 (M2M) 認証を使用することをお勧めします。 「認証」のM2M認証の設定手順を参照してください。

  1. Databricks CLI を使用して、ターゲット ワークスペースごとに次のコマンドを実行して、OAuth トークン管理をローカルで開始します。

    次のコマンドで、 <workspace-url> を Databricks ワークスペース インスタンスの URL に置き換えます (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com.

    Bash
    databricks auth login --host <workspace-url>
  2. Databricks CLI では、入力した情報を Databricks 構成プロファイルとして保存するように求められます。 Enter キーを押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力します。同じ名前の既存のプロファイルは、入力した情報で上書きされます。 プロファイルを使用すると、複数のワークスペース間で認証コンテキストをすばやく切り替えることができます。

    既存のプロファイルのリストを取得するには、別のターミナルまたはコマンドプロンプトでDatabricks CLIを使用してコマンドdatabricks auth profilesを実行します。特定のプロファイルの既存の設定を表示するには、コマンドdatabricks auth env --profile <profile-name>を実行します。

  3. Webブラウザで、画面の指示に従ってDatabricksワークスペースにログインします。

  4. 以下のいずれかのコマンドを実行して、プロファイルの現在のOAuthトークンの値とトークンの今後の有効期限のタイムスタンプを表示します。

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    同じ--host値を持つプロファイルが複数ある場合、Databricks CLIが正しいOAuthトークン情報を見つけられるように--host-pオプションを一緒に指定する必要がある場合があります。

ステップ 2: バンドルを作成する

バンドルには、デプロイするアーティファクトと、実行するワークフローの設定が含まれています。

  1. ターミナルまたはコマンド プロンプトを使用して、テンプレートの生成バンドルを格納するローカル開発マシン上のディレクトリに切り替えます。

  2. Databricks CLI バージョンを使用して、 bundle init コマンドを実行します。

    Bash
    databricks bundle init
  3. Template to useの場合は、Enterを押してデフォルト値の default-python のままにします。

  4. [ Unique name for this project] では、デフォルト値の my_projectをそのまま使用するか、別の値を入力して Enterキーを押します。 これにより、このバンドルのルートディレクトリの名前が決まります。 このルートディレクトリは、現在の作業ディレクトリ内に作成されます。

  5. Include a stub (sample) notebookの場合は、[no] を選択し、Enterキーを押します。これにより、Databricks CLI は、バンドルにサンプル ノートブックを追加しないように指示されます。

  6. Include a stub (sample) DLT pipelineの場合は、[no] を選択し、Enterキーを押します。これにより、Databricks CLI は、バンドルにサンプル DLT パイプラインを定義しないように指示されます。

  7. Include a stub (sample) Python packageの場合は、Enterを押してデフォルト値の yes のままにします。これにより、 Databricks CLI はサンプル Python wheel パッケージファイルと関連するビルド手順をバンドルに追加するように指示されます。

ステップ 3: バンドルを探索する

テンプレートによって生成されたファイルを表示するには、新しく作成したバンドルのルート ディレクトリに切り替え、このディレクトリを任意の IDE (Visual Studio Code など) で開きます。 特に関心のあるファイルには、次のものがあります。

  • databricks.yml: このファイルは、バンドルのプログラム名を指定し、Python wheel ジョブ定義への参照を含み、ターゲット ワークスペースに関する設定を指定します。
  • resources/<project-name>_job.yml: このファイルは、Python wheel ジョブの設定を指定します。
  • src/<project-name>: このディレクトリには、Python wheel ジョブが Python wheel ファイルの構築に使用するファイルが含まれます。
注記

12.2 Python wheel以前がインストールされているターゲット クラスターにDatabricks RuntimeLTS ファイルをインストールする場合は、次の最上位マッピングをdatabricks.yml ファイルに追加する必要があります。

YAML
# Applies to all tasks of type python_wheel_task.
experimental:
python_wheel_wrapper: true

このマッピングは、Databricks CLI に次の操作を行うように指示します。

  • Python wheel ファイルのコピーをバックグラウンドでデプロイします。 このデプロイメント・パスは、通常、 ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whlです。
  • 前にデプロイされた Python wheel ファイルをターゲット クラスターにインストールする手順を含むノートブックをバックグラウンドで作成します。 このノートブックのパスは、通常、 ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>です。
  • Python wheelタスクを含むジョブを実行し、そのタスクが先行するPython wheelファイルを参照すると、先行するノートブックを実行するジョブがバックグラウンドで作成されます。

13.1 以降がインストールされているターゲット クラスターでは、Databricks RuntimePython wheel Databricksワークスペース ファイル システムからのインストール これらのターゲット クラスターに自動的にインストールされるため、このマッピングを指定する必要はありません。

ステップ 4: Poetry を使用するようにプロジェクトのバンドルを更新する

デフォルトでは、バンドルテンプレートは、 setup.py および requirements-dev.txtファイルとともに setuptools を使用して Python wheel ファイルをビルドすることを指定します。これらのデフォルトをそのまま使用する場合は、「 ステップ 5: プロジェクトのバンドル設定ファイルを検証する」に進んでください。

プロジェクトのバンドルを更新して setuptoolsの代わりに Poetry を使用するには、ローカル開発マシンが次の要件を満たしていることを確認してください。

  • Poetry バージョン 1.6 以降。 インストールされている Poetry のバージョンを確認するには、コマンド poetry -V または poetry --versionを実行します。 Poetry をインストールまたはアップグレードするには、 インストールを参照してください
  • Pythonバージョン3.10以降。 Python のバージョンを確認するには、コマンド python -V または python --versionを実行します。
  • Databricks CLI バージョン 0.209.0 以降。 お使いのバージョンの Databricks CLI で、コマンド databricks -v または databricks --versionを実行します。 「Databricks CLI のインストールまたは更新」を参照してください。

プロジェクトのバンドルに次の変更を加えます。

  1. バンドルのルートディレクトリから、次のコマンドを実行して、Poetry の Python wheel ビルドを初期化するように poetry に指示します。

    Bash
    poetry init
  2. Poetryには、完了するためのいくつかのプロンプトが表示されます。 Python wheelビルドの場合は、プロジェクトのバンドル内の関連するデフォルト設定と一致するように、次のようにプロンプトに回答します。

    1. [ Package name] で、[ /src] の下に子フォルダの名前を入力し、 Enterキーを押します。 これは、バンドルの setup.py ファイルで定義されているパッケージの name 値でもあります。
    2. Version0.0.1 と入力して Enter を押してください。 これはバンドルの src/<project-name>/__init__.py ファイルに定義されているバージョン番号と一致します。
    3. Descriptionwheel file based on <project-name>/src と入力して (<project-name> をプロジェクト名に置き換えて)、Enter を押します。 これは、テンプレートの setup.py ファイルに定義されている description 値と一致します。
    4. Authorの場合は、Enterを押します。このデフォルト値は、テンプレートの setup.py ファイルで定義されている作成者と一致します。
    5. Licenseの場合は、Enterを押します。テンプレートにライセンスが定義されていません。
    6. [] Compatible Python versionsで、ターゲットPython Databricksクラスターのバージョンと一致する バージョン ( など) を入力し、^3.10``Enter キーを押します。
    7. Would you like to define your main dependencies interactively?の場合 noと入力し、Enterを押します。依存関係は後で定義します。
    8. Would you like to define your development dependencies interactively?の場合 noと入力し、Enterを押します。依存関係は後で定義します。
    9. Do you confirm generation? プレスの Enter について。
  3. プロンプトを完了すると、Poetry はバンドルのプロジェクトに pyproject.toml ファイルを追加します。 pyproject.toml ファイルに関する情報については、pyproject.toml ファイルを参照してください。

  4. バンドルのルートディレクトリから、 poetrypyproject.toml ファイルの読み取り、依存関係の解決とインストール、依存関係をロックするための poetry.lock ファイルの作成、最後に仮想環境の作成を指示します。 これを行うには、次のコマンドを実行します。

    Bash
    poetry install
  5. pyproject.toml ファイルの末尾に次のセクションを追加して、<project-name>src/<project-name>/main.py ファイルを含むディレクトリの名前(例えば、my_project)に置き換えます。

    [tool.poetry.scripts]
    main = "<project-name>.main:main"

    このセクションでは、Python wheel ジョブの Python wheel のエントリ ポイントを指定します。

  6. バンドルの databricks.yml ファイルの最上位に次のマッピングを追加してください。

    YAML
    artifacts:
    default:
    type: whl
    build: poetry build
    path: .

    このマッピングは、DatabricksCLI Poetryを使用して ファイルを構築するようにPython wheel に指示します。

  7. setup.pyファイルとrequirements-dev.txtファイルはPoetryでは必要ないため、バンドルから削除します。

ステップ 5: プロジェクトのバンドル設定ファイルを検証する

この手順では、バンドル構成が有効かどうかを確認します。

  1. ルート ディレクトリから、Databricks CLI を使用して、次のように bundle validate コマンドを実行します。

    Bash
    databricks bundle validate
  2. バンドル構成のサマリーが返された場合、検証は成功しています。 エラーが返された場合は、エラーを修正し、この手順を繰り返します。

この手順の後にバンドルに変更を加えた場合は、この手順を繰り返して、バンドル構成がまだ有効かどうかを確認する必要があります。

手順 6: Python wheel ファイルをビルドし、ローカル プロジェクトをリモート ワークスペースにデプロイする

この手順では、 Python wheel ファイルをビルドし、ビルドされた Python wheel ファイルをリモート Databricks ワークスペースにデプロイし、ワークスペース内に Databricks ジョブを作成します。

  1. setuptoolsを使用する場合は、次のコマンドを実行して、wheel パッケージと setuptools パッケージをまだインストールしていない場合はインストールします。

    Bash
    pip3 install --upgrade wheel setuptools
  2. Visual Studio Code ターミナルで、Databricks CLI を使用して、次のように bundle deploy コマンドを実行します。

    Bash
    databricks bundle deploy -t dev
  3. ローカルでビルドされた Python wheel ファイルがデプロイされたかどうかを確認するには、次のようにします。

    1. Databricksワークスペースのサイドバーで、[ ワークスペース ]をクリックします。
    2. 次のフォルダをクリックします: ワークスペース > Users > <your-username> > .bundle > <project-name> > dev > アーティファクト > .internal > <random-guid> .

    Python wheelファイルはこのフォルダにある必要があります。

  4. ジョブが作成されたかどうかを確認するには、次のようにします。

    1. Databricks ワークスペースのサイドバーで、 [ワークフロー] をクリックします。
    2. [ジョブ ] タブで、[ 開発<your-username>] <project-name>_job をクリックします。
    3. 「タスク」 タブをクリックします。

    タスクは 1 つ、 main_task つあるべきです。

この手順の後にバンドルに変更を加えた場合は、手順 5 から 6 を繰り返して、バンドル構成がまだ有効かどうかを確認してから、プロジェクトを再デプロイする必要があります。

ステップ 7: デプロイされたプロジェクトを実行する

この手順では、ワークスペースで Databricks ジョブを実行します。

  1. ルート ディレクトリから、Databricks CLI を使用して次のように bundle run コマンドを実行します。 <project-name> を手順 2 のプロジェクトの名前に置き換えます。

    Bash
    databricks bundle run -t dev <project-name>_job
  2. ターミナルに表示される Run URL の値をコピーし、この値を Web ブラウザーに貼り付けて Databricks ワークスペースを開きます。

  3. Databricks ワークスペースで、タスクが正常に完了し、緑色のタイトル バーが表示されたら、 main_task タスクをクリックして結果を確認します。

この手順の後にバンドルに変更を加えた場合は、手順 5 から 7 を繰り返して、バンドル構成がまだ有効かどうかを確認し、プロジェクトを再デプロイして、再デプロイされたプロジェクトを実行する必要があります。

テンプレートを使用してバンドルを作成する手順の最後に到達しました。

バンドルを手動で作成する

このステップでは、バンドルを最初から手作業で作成します。 次の手順では、 ファイルに組み込むファイルで構成されるバンドルと、このPython wheel Databricksファイルを作成する ジョブの定義について説明します。Python wheel次に、デプロイされたファイルを検証、デプロイ、および Databricks ワークスペース内の Python wheel ジョブから Python wheel ファイルにビルドします。

これらの手順には、YAML ファイルへのコンテンツの追加が含まれます。 必要に応じて、YAML ファイルの操作時にスキーマの提案とアクションを自動的に提供する統合開発環境 (IDE) を使用することもできます。 次の手順では、Visual Studio Code Marketplace からインストールされたYAML拡張機能と共に Visual Studio Code を使用します。

これらの手順は、次のことをすでに知っていることを前提としています。

次の手順に従って、 または を使用して ファイルを作成し、Python wheel Poetrysetuptoolsファイルをデプロイしてから、デプロイされた ファイルを実行するサンプルPython wheelPython wheel バンドルを作成します。

Python wheel ファイルを既にビルドしていて、それをデプロイして実行する場合は、 ステップ 3: バンドルの設定ファイルを作成するのバンドル設定ファイルで Python wheel 設定を指定するに進んでください。

ステップ 1: 認証を設定する

この手順では、開発用マシン上の Databricks CLI と Databricks ワークスペースの間の認証を設定します。 この記事では、OAuth ユーザーマシン (U2M) 認証と、認証に DEFAULT という名前の対応する Databricks 構成プロファイルを使用することを前提としています。

注記

U2M認証は、これらの手順をリアルタイムで試すのに適しています。 完全に自動化されたワークフローの場合、Databricks では、代わりに OAuth マシン間 (M2M) 認証を使用することをお勧めします。 「認証」のM2M認証の設定手順を参照してください。

  1. Databricks CLI を使用して、ターゲット ワークスペースごとに次のコマンドを実行して、OAuth トークン管理をローカルで開始します。

    次のコマンドで、 <workspace-url> を Databricks ワークスペース インスタンスの URL に置き換えます (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com.

    Bash
    databricks auth login --host <workspace-url>
  2. Databricks CLI では、入力した情報を Databricks 構成プロファイルとして保存するように求められます。 Enter キーを押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力します。同じ名前の既存のプロファイルは、入力した情報で上書きされます。 プロファイルを使用すると、複数のワークスペース間で認証コンテキストをすばやく切り替えることができます。

    既存のプロファイルのリストを取得するには、別のターミナルまたはコマンドプロンプトでDatabricks CLIを使用してコマンドdatabricks auth profilesを実行します。特定のプロファイルの既存の設定を表示するには、コマンドdatabricks auth env --profile <profile-name>を実行します。

  3. Webブラウザで、画面の指示に従ってDatabricksワークスペースにログインします。

  4. 以下のいずれかのコマンドを実行して、プロファイルの現在のOAuthトークンの値とトークンの今後の有効期限のタイムスタンプを表示します。

    • databricks auth token --host <workspace-url>
    • databricks auth token -p <profile-name>
    • databricks auth token --host <workspace-url> -p <profile-name>

    同じ--host値を持つプロファイルが複数ある場合、Databricks CLIが正しいOAuthトークン情報を見つけられるように--host-pオプションを一緒に指定する必要がある場合があります。

ステップ 2: バンドルを作成する

バンドルには、デプロイするアーティファクトと、実行するワークフローの設定が含まれています。

  1. バンドルのルートで、Python wheel ファイルの構築に Poetry を使用するか setuptools を使用するかに応じて、次のフォルダとファイルを作成します。
├── src
│ └── my_package
│ ├── __init__.py
│ ├── main.py
│ └── my_module.py
└── pyproject.toml
  1. __init__.py ファイルは空のままにします。

  2. 次のコードを main.py ファイルに追加し、ファイルを保存します。

    Python
    from my_package.my_module import *

    def main():

    first = 200
    second = 400

    print(f"{first} + {second} = {add_two_numbers(first, second)}")
    print(f"{second} - {first} = {subtract_two_numbers(second, first)}")
    print(f"{first} * {second} = {multiply_two_numbers(first, second)}")
    print(f"{second} / {first} = {divide_two_numbers(second, first)}")

    if __name__ == "__main__":
    main()
  3. 次のコードを my_module.py ファイルに追加し、ファイルを保存します。

    Python
    def add_two_numbers(a, b):
    return a + b

    def subtract_two_numbers(a, b):
    return a - b

    def multiply_two_numbers(a, b):
    return a * b

    def divide_two_numbers(a, b):
    return a / b
  4. 次のコードを pyproject.toml ファイルまたは setup.py ファイルに追加し、ファイルを保存します。

[tool.poetry]
name = "my_package"
version = "0.0.1"
description = "<my-package-description>"
authors = ["my-author-name <my-author-name>@<my-organization>"]

[tool.poetry.dependencies]
python = "^3.10"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.poetry.scripts]
main = "my_package.main:main"
  • Replace my-author-name with your organization’s primary contact name.

  • Replace my-author-name>@<my-organization with your organization’s primary email contact address.

  • Replace <my-package-description> with a display description for your Python wheel file.

ステップ 3: バンドルの設定ファイルを作成する

バンドル設定ファイルには、デプロイするアーティファクトと実行するワークフローが記述されています。

  1. バンドルのルートに、 databricks.ymlという名前のバンドル設定ファイルを追加します。 このファイルに次のコードを追加します。
注記

If you have already built a Python wheel file and just want to deploy it, then modify the following bundle configuration file by omitting the artifacts mapping. The Databricks CLI will then assume that the Python wheel file is already built and will automatically deploy the files that are specified in the libraries array’s whl entries.

YAML
bundle:
name: my-wheel-bundle

artifacts:
default:
type: whl
build: poetry build
path: .

resources:
jobs:
wheel-job:
name: wheel-job
tasks:
- task_key: wheel-task
new_cluster:
spark_version: 13.3.x-scala2.12
node_type_id: i3.xlarge
data_security_mode: USER_ISOLATION
num_workers: 1
python_wheel_task:
entry_point: main
package_name: my_package
libraries:
- whl: ./dist/*.whl

targets:
dev:
workspace:
host: <workspace-url>

<workspace-url>ワークスペース インスタンスの URL に置き換えます (例: https://dbc-a1b2345c-d6e7.cloud.databricks.com)。

マッピングは、 を使用してartifactsPython wheel ファイルをビルドするために必要であり、Poetry Python wheelを使用してsetuptools ファイルをビルドする場合はオプションです。artifactsマッピングには、次のマッピングを持つ 1 つ以上のアーティファクト定義が含まれています。

  • type マッピングが存在し、 Python wheel ファイルが作成されることを指定するために whl に設定する必要があります。 setuptoolsの場合、アーティファクト定義が指定されていない場合は whl がデフォルトです。

  • pathマッピングは、Poetry の pyproject.toml ファイルまたは setuptoolssetup.py ファイルへのパスを示します。このパスは、 databricks.yml ファイルに対する相対パスです。 setuptoolsの場合、このパスはデフォルトで . (databricks.yml ファイルと同じディレクトリ) です。

  • buildマッピングは、Python wheel ファイルをビルドするために実行するカスタムビルドコマンドを示します。setuptoolsの場合、このコマンドはデフォルトでpython3 setup.py bdist wheelされています。

  • files マッピングは、 Python wheel ビルドに含める追加ファイルを指定する 1 つ以上の source マッピングで構成されます。 デフォルトはありません。

注記

12.2 Python wheel以前がインストールされているターゲット クラスターにDatabricks RuntimeLTS ファイルをインストールする場合は、次の最上位マッピングをdatabricks.yml ファイルに追加する必要があります。

YAML
# Applies to jobs with python_wheel_task and that use
# clusters with Databricks Runtime 13.0 or below installed.
experimental:
python_wheel_wrapper: true

このマッピングは、Databricks CLI に次の操作を行うように指示します。

  • Python wheel ファイルのコピーをバックグラウンドでデプロイします。 このデプロイメント・パスは、通常、 ${workspace.artifact_path}/.internal/<random-id>/<wheel-filename>.whlです。

  • 前のデプロイされた Python wheel ファイルをターゲット クラスターにインストールする手順を含むノートブックをバックグラウンドで作成します。 このノートブックのパスは、通常、 ${workspace.file_path}/.databricks/bundle/<target-name>/.internal/notebook_<job-name>_<task-key>です。

  • Python wheelタスクを含むジョブを実行し、そのタスクが先行するPython wheelファイルを参照すると、先行するノートブックを実行するジョブがバックグラウンドで作成されます。

13.1 以降がインストールされているターゲット クラスターでは、Databricks RuntimePython wheel Databricksワークスペース ファイル システムからのインストール これらのターゲット クラスターに自動的にインストールされるため、このマッピングを指定する必要はありません。

  1. Poetryを使用する場合は、次の操作を行います。

    • Poetry バージョン 1.6 以降がまだインストールされていない場合は、インストールします。 インストールされている Poetry のバージョンを確認するには、コマンド poetry -V または poetry --versionを実行します。
    • Pythonバージョン3.10以降がインストールされていることを確認してください。 Python のバージョンを確認するには、コマンド python -V または python --versionを実行します。
    • Databricks CLI バージョン 0.209.0 以降を使用していることを確認してください。 お使いのバージョンの Databricks CLI で、コマンド databricks -v または databricks --versionを実行します。 「Databricks CLI のインストールまたは更新」を参照してください。
  2. setuptoolsを使用する場合は、次のコマンドを実行して、wheel パッケージと setuptools パッケージがまだインストールされていない場合はインストールします。

    Bash
    pip3 install --upgrade wheel setuptools
  3. このバンドルを Git プロバイダーと共に格納する場合は、プロジェクトのルートに .gitignore ファイルを追加し、このファイルに次のエントリを追加します。

.databricks
dist

ステップ 4: プロジェクトのバンドル設定ファイルを検証する

この手順では、バンドル構成が有効かどうかを確認します。

  1. ルートディレクトリから、バンドル設定ファイルを検証します。

    Bash
    databricks bundle validate
  2. バンドル構成のサマリーが返された場合、検証は成功しています。 エラーが返された場合は、エラーを修正し、この手順を繰り返します。

この手順の後にバンドルに変更を加えた場合は、この手順を繰り返して、バンドル構成がまだ有効かどうかを確認する必要があります。

手順 5: Python wheel ファイルをビルドし、ローカル プロジェクトをリモート ワークスペースにデプロイする

Python wheel ファイルをローカルにビルドし、ビルドした Python wheel ファイルをワークスペースにデプロイし、ノートブックをワークスペースにデプロイして、ワークスペースにジョブを作成します。

Bash
databricks bundle deploy -t dev

ステップ 6: デプロイされたプロジェクトを実行する

  1. デプロイされたジョブを実行し、デプロイされたノートブックを使用してデプロイされた Python wheel ファイルを呼び出します。

    Bash
    databricks bundle run -t dev wheel-job
  2. 出力で、 Run URL をコピーして、Webブラウザーのアドレスバーに貼り付けます。

  3. ジョブ実行の [出力 ] ページに、次の結果が表示されます。

    200 + 400 = 600
    400 - 200 = 200
    200 * 400 = 80000
    400 / 200 = 2.0

この手順の後にバンドルに変更を加えた場合は、手順 3 から 5 を繰り返して、バンドル構成がまだ有効かどうかを確認し、プロジェクトを再デプロイして、再デプロイされたプロジェクトを実行する必要があります。

ジョブの Python wheel ファイルをビルドしてインストールする

Python wheelPoetryまたはsetuptools を使用してPython wheel ファイルを作成し、その ファイルをジョブで使用するには、 ファイルに 1 つまたは 2databricks.yml つのマッピングを追加する必要があります。

Poetryを使用する場合は、次のartifactsマッピングを databricks.yml ファイルに含める必要があります。このマッピングは poetry build コマンドを実行し、databricks.yml ファイルと同じディレクトリにある pyproject.toml ファイルを使用します。

YAML
artifacts:
default:
type: whl
build: poetry build
path: .
注記

artifactsマッピングは、setuptoolsではオプションです。By デフォルト, for setuptools the Databricks CLI は、コマンドを実行し、databricks.ymlファイルと同じディレクトリにあるsetup.pyファイルpython3 setup.py bdist_wheel使用します。 Databricks CLI では、wheel パッケージと setuptools パッケージがまだインストールされていない場合は、pip3 install --upgrade wheel setuptools などのコマンドを既に実行していることを前提としています。

また、ジョブ タスクの libraries マッピングには、ビルド Python wheel ファイルが宣言されている構成ファイルを基準にして、ビルド ファイルへのパスを指定する whl 値が含まれている必要があります。 次の例は、ノートブック タスクでこれを示しています (省略記号は、簡潔にするために省略されたコンテンツを示しています)。

YAML
resources:
jobs:
my-notebook-job:
name: my-notebook-job
tasks:
- task_key: my-notebook-job-notebook-task
notebook_task:
notebook_path: ./my_notebook.py
libraries:
- whl: ./dist/*.whl
new_cluster:
# ...

パイプラインの Python wheel ファイルをビルドしてインストールする

Python wheelPoetryまたはsetuptools を使用してPython wheel ファイルを作成し、その ファイルを DLT パイプラインで参照するには、次のように を使用する場合はdatabricks.yml Poetry%pip installファイルにマッピングを追加する必要があります。また、次のように コマンドをパイプライン ノートブックに追加する必要があります。

Poetryを使用する場合は、次のartifactsマッピングを databricks.yml ファイルに含める必要があります。このマッピングは poetry build コマンドを実行し、databricks.yml ファイルと同じディレクトリにある pyproject.toml ファイルを使用します。

YAML
artifacts:
default:
type: whl
build: poetry build
path: .
注記

artifactsマッピングは、setuptoolsではオプションです。By デフォルト, for setuptools the Databricks CLI は、コマンドを実行し、databricks.ymlファイルと同じディレクトリにあるsetup.pyファイルpython3 setup.py bdist_wheel使用します。 Databricks CLI では、wheel パッケージと setuptools パッケージがまだインストールされていない場合は、pip3 install --upgrade wheel setuptools などのコマンドを既に実行していることを前提としています。

また、関連するパイプライン ノートブックには、ビルドされた Python wheel ファイルをインストールするための %pip install コマンドが含まれている必要があります。 Python ライブラリを参照してください。