Databricks アセットバンドルを使用して Python wheel ファイルを開発する
この記事では、Python wheel DatabricksAsset Bundle プロジェクトの一部として ファイルを構築、デプロイ、実行する方法について説明します。「Databricks アセット バンドルとは何ですか?」を参照してください。
要件
Databricks CLI バージョン 0.218.0 以上。 インストールされている Databricks CLI のバージョンを確認するには、コマンド
databricks -v
を実行します。 Databricks CLI をインストールするには、 「Databricks CLI のインストールまたは更新」を参照してください。リモート ワークスペースでは、ワークスペース ファイルが有効になっている必要があります。 「 ワークスペース ファイルとは」を参照してください。
決定する事項: バンドルを手動で、またはテンプレートを使用して作成する
テンプレートを使用してスターターバンドルを作成するか、手動でバンドルを作成するかを決定します。 テンプレートを使用したバンドルの作成は迅速かつ簡単ですが、バンドルによって不要なコンテンツが生成される可能性があるため、バンドルのデフォルト設定を実際のアプリケーション用にさらにカスタマイズする必要があります。 バンドルを手動で作成すると、バンドルの設定を完全に制御できますが、最初からすべての作業を行うため、バンドルの仕組みに精通している必要があります。 次のいずれかのステップのセットを選択します。
テンプレートを使用したバンドルの作成
これらのステップでは、Databricks Python用の 必ずバンドル テンプレートを使用してバンドルを作成します。これらのステップは、Python wheel ファイルにビルドするファイルと、この ファイルをビルドするDatabricks ジョブの定義で構成されるバンドルを作成する手順を示します。Python wheel次に、 ワークスペース内の から、デプロイされたファイルを検証、デプロイし、PythonPython wheel WheelPython wheel ファイルにビルドします。Databricks
用の Databricks必ずバンドル テンプレートは、Python setuptools を使用して ファイルを構築します。Python wheel代わりにPoetryを使用してPython wheelファイルを構築する場合は、このセクションで後述する手順に従って、代わりに setuptools
実装をPoetry実装に置き換えます。
ステップ 1: 認証を設定する
このステップでは、開発マシン上の Databricks CLI と Databricks ワークスペース間の認証を設定します。 この記事では、OAuth ユーザー対マシン (U2M) 認証と、対応するDEFAULT
という名前の Databricks 構成プロファイルを認証に使用することを前提としています。
注
U2M 認証は、これらのステップをリアルタイムで試すのに適しています。 完全に自動化されたワークフローの場合、Databricks では代わりに OAuth マシン間 (M2M) 認証を使用することをお勧めします。 「認証」の M2M 認証の設定手順を参照してください。
Databricks CLIを使用して、ターゲット ワークスペースごとに次のコマンドを実行して、OAuth トークン管理をローカルで開始します。
次のコマンドで、
<workspace-url>
Databricks ワークスペース インスタンスの URLに置き換えます (例:https://dbc-a1b2345c-d6e7.cloud.databricks.com
。databricks auth login --host <workspace-url>
Databricks CLIは、入力した情報をDatabricks構成プロファイルとして保存するよう促します。
Enter
を押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力してください。同じ名前の既存のプロファイルは、入力した情報で上書きされます。プロファイルを使用すると、複数のワークスペース間で認証コンテキストをすばやく切り替えることができます。既存のプロファイルのリストを取得するには、別のターミナルまたはコマンド プロンプトで、Databricks CLI を使用してコマンド
databricks auth profiles
を実行します。 特定のプロファイルの既存の設定を表示するには、コマンドdatabricks auth env --profile <profile-name>
を実行します。Web ブラウザーで、画面上の指示に従って Databricks ワークスペースにログインします。
プロファイルの現在の 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: バンドルを作成する
バンドルには、デプロイするアーティファクトと、実行するワークフローの設定が含まれています。
ターミナルまたはコマンド プロンプトを使用して、テンプレートの生成されたバンドルを含むローカル開発マシン上のディレクトリに切り替えます。
Databricks CLI バージョンを使用して、
bundle init
コマンドを実行します。databricks bundle init
Template to use
の場合は、デフォルト値のdefault-python
のままにして、Enter
を押します。[
Unique name for this project
] では、デフォルト値のmy_project
のままにするか、別の値を入力してEnter
キーを押します。 これにより、このバンドルのルートディレクトリの名前が決まります。 このルートディレクトリは、現在の作業ディレクトリ内に作成されます。Include a stub (sample) notebook
の場合は、[no
] を選択してEnter
を押します。これにより、サンプル ノートブックをバンドルに追加しないように Databricks CLI に指示されます。Include a stub (sample) DLT pipeline
の場合は、[no
] を選択してEnter
を押します。これにより、バンドルにサンプル Delta Live Tables パイプラインを定義しないように Databricks CLI に指示されます。Include a stub (sample) Python package
の場合は、デフォルト値のyes
のままにして、Enter
を押します。これにより、サンプル Python wheel パッケージ ファイルと関連するビルド手順をバンドルに追加するように Databricks CLI に指示されます。
ステップ 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
ファイルに追加する必要があります。
# 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ファイルを参照すると、前のノートブックを実行するジョブがバックグラウンドで作成されます。
Databricks ワークスペース ファイル システムからのインストール これらのターゲット クラスターに自動的にインストールされるため、 13.1 以降がインストールされているターゲット クラスターに対してこのマッピングを指定する必要はありません。Databricks RuntimePython wheel
ステップ 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 のインストールまたは更新」を参照してください。
プロジェクトのバンドルに次の変更を加えます。
バンドルのルートディレクトリから、次のコマンドを実行して、Poetry の Python wheel ビルドを初期化するように
poetry
に指示します。poetry init
「Poetry」には、入力を求めるプロンプトがいくつか表示されます。 Python wheelビルドの場合は、次のようにこれらのプロンプトに応答して、プロジェクトのバンドル内の関連するデフォルト設定と一致させます。
Package name
の場合は、[/src
] の下に子フォルダの名前を入力し、Enter
を押します。これは、バンドルのsetup.py
ファイルで定義されているパッケージのname
値でもあります。Version
の場合は、0.0.1
と入力してEnter
を押します。これは、バンドルのsrc/<project-name>/__init__.py
ファイルで定義されているバージョン番号と一致します。[
Description
] にwheel file based on <project-name>/src
と入力し (<project-name>
をプロジェクト名に置き換えて)、Enter
を押します。 これは、テンプレートのsetup.py
ファイルで定義されているdescription
値と一致します。Author
の場合は、Enter
を押します。このデフォルト値は、テンプレートのsetup.py
ファイルで定義されている作成者と一致します。License
の場合は、Enter
を押します。テンプレートにライセンスが定義されていません。Compatible Python versions
には、ターゲットの Databricks クラスターの Python バージョンと一致する Python バージョン(例:^3.10
)を入力し、Enter
を押します。Would you like to define your main dependencies interactively?
の場合は、no
と入力してEnter
を押します。依存関係は後で定義します。Would you like to define your development dependencies interactively?
の場合は、no
と入力してEnter
を押します。依存関係は後で定義します。Do you confirm generation?
Enter
を押します。
プロンプトを完了すると、Poetry によってバンドルのプロジェクトに
pyproject.toml
ファイルが追加されます。pyproject.toml
ファイルの詳細については、「pyproject.toml ファイル」を参照してください。バンドルのルートディレクトリから、
pyproject.toml
ファイルを読み取り、依存関係を解決してインストールし、依存関係をロックするpoetry.lock
ファイルを作成し、最後に仮想環境を作成するようにpoetry
に指示します。これを行うには、次のコマンドを実行します。poetry install
pyproject.toml
ファイルの末尾に次のセクションを追加し、<project-name>
をsrc/<project-name>/main.py
ファイルを含むディレクトリの名前 (my_project
など) に置き換えます。[tool.poetry.scripts] main = "<project-name>.main:main"
このセクションは、Python wheel ジョブのPython wheelのエントリ ポイントを指定します。
バンドルの
databricks.yml
ファイルの最上位に次のマッピングを追加します。artifacts: default: type: whl build: poetry build path: .
このマッピングは、 Databricks CLIにPoetryを使用してPython wheelファイルを構築するように指示します。
setup.py
ファイルとrequirements-dev.txt
ファイルは Poetry に必要ないため、バンドルから削除します。
ステップ 5: プロジェクトのバンドル構成ファイルを検証する
このステップでは、バンドル設定が有効かどうかを確認します。
ルート ディレクトリから、Databricks CLI を使用して、次のように
bundle validate
コマンドを実行します。databricks bundle validate
バンドル設定の概要が返された場合、検証は成功しています。 エラーが返された場合は、エラーを修正してから、この手順を繰り返します。
このステップの後にバンドルに変更を加えた場合は、この手順を繰り返して、バンドル設定がまだ有効かどうかを確認する必要があります。
ステップ 6: Python wheelファイルをビルドし、ローカル プロジェクトをリモート ワークスペースにデプロイします
このステップでは、 Python wheelファイルをビルドし、ビルドしたPython wheelファイルをリモートDatabricksワークスペースにデプロイし、ワークスペース内にDatabricksジョブを作成します。
setuptools
を使用する場合、次のコマンドを実行して、wheel
パッケージとsetuptools
パッケージをまだインストールしていない場合はインストールします。pip3 install --upgrade wheel setuptools
Visual Studio Code ターミナルで、Databricks CLI を使用して、次のように
bundle deploy
コマンドを実行します。databricks bundle deploy -t dev
ローカルに構築されたPython wheelファイルがデプロイされたかどうかを確認する場合は、次のようにします。
Databricks ワークスペースのサイドバーで、 [ワークスペース] をクリックします。
次のフォルダーをクリックします: ワークスペース > Users >
<your-username>
> .bundle ><project-name>
> dev > artifacts > .internal ><random-guid>
。
Python wheelファイルはこのフォルダーにある必要があります。
ジョブが作成されたかどうかを確認する場合は、次のようにします。
Databricks ワークスペースのサイドバーで、 [ワークフロー] をクリックします。
[ジョブ] タブで、[開発
<your-username>
]<project-name>
_jobをクリックします。「タスク」タブをクリックします。
タスクは 1 つ、 main_task です。
このステップの後にバンドルに変更を加える場合は、ステップ 5 から 6 を繰り返して、バンドル構成がまだ有効かどうかを確認してから、プロジェクトを再デプロイする必要があります。
ステップ 7: デプロイされたプロジェクトを実行する
この手順では、ワークスペースで Databricks ジョブを実行します。
ルート ディレクトリから、Databricks CLI を使用して次のように
bundle run
コマンドを実行し、<project-name>
を手順 2 のプロジェクトの名前に置き換えます。databricks bundle run -t dev <project-name>_job
ターミナルに表示される
Run URL
の値をコピーし、この値を Web ブラウザーに貼り付けて Databricks ワークスペースを開きます。Databricks ワークスペースで、タスクが正常に完了し、緑色のタイトル バーが表示されたら、 main_task タスクをクリックして結果を確認します。
このステップの後にバンドルに変更を加えた場合は、ステップ 5 から 7 を繰り返してバンドル構成がまだ有効かどうかを確認し、プロジェクトを再デプロイして、再デプロイされたプロジェクトを実行する必要があります。
テンプレートを使用してバンドルを作成するための手順の最後に到達しました。
バンドルを手動で作成する
これらのステップでは、バンドルを最初から手動で作成します。 これらのステップは、Python wheel ファイルにビルドするファイルと、この ファイルをビルドするDatabricks ジョブの定義で構成されるバンドルを作成する手順を示します。Python wheel次に、 ワークスペース内の から、デプロイされたファイルを検証、デプロイし、PythonPython wheel WheelPython wheel ファイルにビルドします。Databricks
これらのステップには、YAMLファイルへのコンテンツの追加が含まれます。 必要に応じて、YAML ファイルを操作するときにスキーマの提案とアクションを自動的に提供する統合開発環境 (IDE) を使用できます。 次のステップでは、Visual Studio Code Marketplace からインストールされた YAML 拡張機能で Visual Studio Code を使用します。
これらのステップは、次のことを既に認識していることを前提としています。
または Python wheelを使用してPoetry
setuptools
ファイルを作成、構築、操作する方法。Poetryについては、 「基本的な使い方」を参照してください。setuptools
については、 「Python Packaging User Guide」を参照してください。Python wheelDatabricksジョブの一部として ファイルを使用する方法。ジョブでの Python wheelファイルの使用」をDatabricks 参照してください。
次の手順に従って、 または Python wheelを使用してPoetrysetuptools
ファイルを構築し、 ファイルをデプロイし、デプロイされた ファイルを実行するサンプルPython wheelPython wheel バンドルを作成します。
すでにPython wheel ファイルを構築していて、それをデプロイして実行したい場合は、Python wheel 「ステップ 3: バンドルの構成ファイルを作成する」のバンドル構成ファイル での 設定の指定に進んでください。
ステップ 1: 認証を設定する
このステップでは、開発マシン上の Databricks CLI と Databricks ワークスペース間の認証を設定します。 この記事では、OAuth ユーザー対マシン (U2M) 認証と、対応するDEFAULT
という名前の Databricks 構成プロファイルを認証に使用することを前提としています。
注
U2M 認証は、これらのステップをリアルタイムで試すのに適しています。 完全に自動化されたワークフローの場合、Databricks では代わりに OAuth マシン間 (M2M) 認証を使用することをお勧めします。 「認証」の M2M 認証の設定手順を参照してください。
Databricks CLIを使用して、ターゲット ワークスペースごとに次のコマンドを実行して、OAuth トークン管理をローカルで開始します。
次のコマンドで、
<workspace-url>
Databricks ワークスペース インスタンスの URLに置き換えます (例:https://dbc-a1b2345c-d6e7.cloud.databricks.com
。databricks auth login --host <workspace-url>
Databricks CLIは、入力した情報をDatabricks構成プロファイルとして保存するよう促します。
Enter
を押して提案されたプロファイル名を受け入れるか、新規または既存のプロファイルの名前を入力してください。同じ名前の既存のプロファイルは、入力した情報で上書きされます。プロファイルを使用すると、複数のワークスペース間で認証コンテキストをすばやく切り替えることができます。既存のプロファイルのリストを取得するには、別のターミナルまたはコマンド プロンプトで、Databricks CLI を使用してコマンド
databricks auth profiles
を実行します。 特定のプロファイルの既存の設定を表示するには、コマンドdatabricks auth env --profile <profile-name>
を実行します。Web ブラウザーで、画面上の指示に従って Databricks ワークスペースにログインします。
プロファイルの現在の 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: バンドルを作成する
バンドルには、デプロイするアーティファクトと、実行するワークフローの設定が含まれています。
ホイールPoetry
setuptools
ファイルの構築に 使用するかPython wheel を使用するかに応じて、バンドルのルートに次のフォルダーとファイルを作成します。├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── pyproject.toml
├── src │ └── my_package │ ├── __init__.py │ ├── main.py │ └── my_module.py └── setup.py
__init__.py
ファイルは空のままにします。次のコードを
main.py
ファイルに追加し、ファイルを保存します。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()
次のコードを
my_module.py
ファイルに追加し、ファイルを保存します。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
次のコードを
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"
my-author-name
を組織のプライマリ連絡先名に置き換えます。my-author-name>@<my-organization
、組織の主要な電子メール連絡先アドレスに置き換えます。<my-package-description>
をPython wheelファイルの表示説明に置き換えます。
from setuptools import setup, find_packages import src setup( name = "my_package", version = "0.0.1", author = "<my-author-name>", url = "https://<my-url>", author_email = "<my-author-name>@<my-organization>", description = "<my-package-description>", packages=find_packages(where='./src'), package_dir={'': 'src'}, entry_points={ "packages": [ "main=my_package.main:main" ] }, install_requires=[ "setuptools" ] )
https://<my-url>
組織の URL に置き換えます。<my-author-name>
を組織のプライマリ連絡先名に置き換えます。<my-author-name>@<my-organization>
、組織の主要な電子メール連絡先アドレスに置き換えます。<my-package-description>
をPython wheelファイルの表示説明に置き換えます。
ステップ 3: バンドルの設定ファイルを作成する
バンドル構成ファイルには、デプロイする成果物と実行するワークフローが記述されています。
バンドルのルートに、
databricks.yml
という名前のバンドル設定ファイルを追加します。 このファイルに次のコードを追加します。注
すでにPython wheelファイルを構築していて、それをデプロイするだけの場合は、
artifacts
マッピングを省略して次のバンドル構成ファイルを変更します。 Databricks CLI 、 Python wheelファイルがすでに構築されていると想定し、libraries
配列のwhl
エントリで指定されたファイルを自動的にデプロイします。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>
bundle: name: my-wheel-bundle 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
)。artifacts
Python wheelマッピングは、Poetry で ファイルをビルドする場合に必要ですが、Python wheel でsetuptools
ファイルをビルドする場合はオプションです。artifacts
マッピングには、以下のマッピングを持つ 1 つ以上の成果物定義が含まれます。Python wheelファイルが構築されることを指定するには、
type
マッピングが存在し、whl
に設定されている必要があります。setuptools
の場合、アーティファクト定義が指定されていない場合は、whl
がデフォルトになります。path
マッピングは、Poetry の場合はpyproject.toml
ファイル、setuptools
の場合はsetup.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
ファイルに追加する必要があります。# 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ファイルを参照すると、前のノートブックを実行するジョブがバックグラウンドで作成されます。
Databricks ワークスペース ファイル システムからのインストール これらのターゲット クラスターに自動的にインストールされるため、 13.1 以降がインストールされているターゲット クラスターに対してこのマッピングを指定する必要はありません。Databricks RuntimePython wheel
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 のインストールまたは更新」を参照してください。
setuptools
を使用する場合は、次のコマンドを実行して、wheel
パッケージとsetuptools
パッケージがインストールされていない場合はインストールします。pip3 install --upgrade wheel setuptools
このバンドルを Git プロバイダーと共に格納する場合は、プロジェクトのルートに
.gitignore
ファイルを追加し、このファイルに次のエントリを追加します。.databricks dist
.databricks build dist src/my_package/my_package.egg-info
ステップ 4: プロジェクトのバンドル設定ファイルを検証する
このステップでは、バンドル設定が有効かどうかを確認します。
ルートディレクトリから、バンドル設定ファイルを検証します。
databricks bundle validate
バンドル設定の概要が返された場合、検証は成功しています。 エラーが返された場合は、エラーを修正してから、この手順を繰り返します。
このステップの後にバンドルに変更を加えた場合は、この手順を繰り返して、バンドル設定がまだ有効かどうかを確認する必要があります。
ステップ 5: Python wheelファイルをビルドし、ローカル プロジェクトをリモート ワークスペースにデプロイします
Python wheelファイルをローカルでビルドし、ビルドしたPython wheelファイルをワークスペースにデプロイし、ノートブックをワークスペースにデプロイして、ワークスペースにジョブを作成します。
databricks bundle deploy -t dev
ステップ 6: デプロイしたプロジェクトを実行する
デプロイされたジョブを実行します。デプロイされたノートブックを使用して、デプロイされたPython wheelファイルを呼び出します。
databricks bundle run -t dev wheel-job
出力で、
Run URL
をコピーして、Web ブラウザーのアドレス バーに貼り付けます。ジョブ実行の [ 出力 ] ページに、次の結果が表示されます。
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
ファイルを使用します。
artifacts:
default:
type: whl
build: poetry build
path: .
注
artifacts
マッピングは、setuptools
ではオプションです。既定では、setuptools
Databricks CLI はコマンド python3 setup.py bdist_wheel
を実行し、databricks.yml
ファイルと同じディレクトリにある setup.py
ファイルを使用します。Databricks CLI では、wheel
パッケージと setuptools
パッケージがまだインストールされていない場合は、pip3 install --upgrade wheel setuptools
などのコマンドを既に実行していることを前提としています。
また、ジョブ タスクの libraries
マッピングには、宣言されている構成ファイルに対するビルドされたPython wheelファイルへの相対パスを指定する whl
値が含まれている必要があります。 次の例は、ノートブック タスクでこれを示しています (省略記号は簡潔にするために省略されたコンテンツを示します)。
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 wheelPoetrysetuptools
Python wheelまたはDelta Live Tables を使用して ファイルを構築し、その ファイルを パイプラインで参照するには、 を使用する場合はdatabricks.yml
Poetry%pip install
ファイルにマッピングを追加する必要があります。また、{2次のように、パイプライン ノートブックにコマンドを実行します。
Poetry を使用する場合は、次の artifacts
マッピングを databricks.yml
ファイルに含める必要があります。 このマッピングは poetry build
コマンドを実行し、databricks.yml
ファイルと同じディレクトリにある pyproject.toml
ファイルを使用します。
artifacts:
default:
type: whl
build: poetry build
path: .
注
artifacts
マッピングは、setuptools
ではオプションです。既定では、setuptools
Databricks CLI はコマンド python3 setup.py bdist_wheel
を実行し、databricks.yml
ファイルと同じディレクトリにある setup.py
ファイルを使用します。Databricks CLI では、wheel
パッケージと setuptools
パッケージがまだインストールされていない場合は、pip3 install --upgrade wheel setuptools
などのコマンドを既に実行していることを前提としています。
また、関連するパイプライン ノートブックには、ビルドされたPython wheelファイルをインストールするための %pip install
コマンドが含まれている必要があります。 「Python ライブラリ」を参照してください。