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

プレビュー

この機能はパブリックプレビュー段階です。

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

要件

  • Databricks CLI バージョン 0.205 以降。 インストールされている Databricks CLI のバージョンを確認するには、コマンド databricks -vを実行します。 Databricks CLI バージョン 0.205 以降をインストールするには、 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 認証の設定手順を参照してください。

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

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

    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. Dataricks CLI バージョンを使用して、 bundle init コマンドを実行します。

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

  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を押します。これにより、バンドルにサンプル Delta Live Tables パイプラインを定義しないように Databricks CLI に指示されます。

  7. 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 のインストールまたは更新」を参照してください。

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

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

    poetry init
    
  2. 「Poetry」には、入力を求めるプロンプトがいくつか表示されます。 Python wheelビルドの場合は、次のようにこれらのプロンプトに応答して、プロジェクトのバンドル内の関連するデフォルト設定と一致させます。

    1. Package nameの場合は、[/src] の下に子フォルダの名前を入力し、Enterを押します。これは、バンドルのsetup.pyファイルで定義されているパッケージのname値でもあります。

    2. Versionの場合は、0.0.1と入力してEnterを押します。これは、バンドルの src/<project-name>/__init__.py ファイルで定義されているバージョン番号と一致します。

    3. [ Description] に wheel file based on <project-name>/src と入力し ( <project-name> をプロジェクト名に置き換えて)、 Enterを押します。 これは、テンプレートのsetup.pyファイルで定義されているdescription値と一致します。

    4. Authorの場合は、Enterを押します。このデフォルト値は、テンプレートの setup.py ファイルで定義されている作成者と一致します。

    5. Licenseの場合は、Enterを押します。テンプレートにライセンスが定義されていません。

    6. Compatible Python versionsには、ターゲットの Databricks クラスターの Python バージョンと一致する Python バージョン(例: ^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. バンドルのルートディレクトリから、pyproject.tomlファイルを読み取り、依存関係を解決してインストールし、依存関係をロックするpoetry.lockファイルを作成し、最後に仮想環境を作成するようにpoetryに指示します。これを行うには、次のコマンドを実行します。

    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 ファイルの最上位に次のマッピングを追加します。

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

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

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

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

このステップでは、バンドル設定が有効かどうかを確認します。

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

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

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

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

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

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

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

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

    1. Databricks ワークスペースのサイドバーで、 [ワークスペース] をクリックします。

    2. 次のフォルダーをクリックします: ワークスペース > Users > <your-username> > .bundle > <project-name> > dev > artifacts > .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 のプロジェクトの名前に置き換えます。

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

  3. 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を使用してPoetrysetuptools ファイルを構築し、 ファイルをデプロイし、デプロイされた ファイルを実行するサンプルPython wheelPython wheel バンドルを作成します。

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

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

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

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

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

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

    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. ホイール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
    
  2. __init__.py ファイルは空のままにします。

  3. 次のコードを 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()
    
  4. 次のコードを 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
    
  5. 次のコードを 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: バンドルの設定ファイルを作成する

バンドル構成ファイルには、デプロイする成果物と実行するワークフローが記述されています。

  1. バンドルのルートに、 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: n2-highmem-4
                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: n2-highmem-4
                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://1234567890123456.7.gcp.databricks.com)。

    artifactsPython 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

  2. 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 のインストールまたは更新」を参照してください。

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

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

    .databricks
    dist
    
    .databricks
    build
    dist
    src/my_package/my_package.egg-info
    

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

このステップでは、バンドル設定が有効かどうかを確認します。

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

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

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

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

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

databricks bundle deploy -t dev

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

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

    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 ファイルを使用します。

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 マッピングには、databricks.yml ファイルを基準にしてビルドされた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 wheelPoetrysetuptoolsPython 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 ライブラリ」を参照してください。