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

LakeflowジョブでPython wheelファイルを使用する

Python ホイール ファイルは 、Python アプリケーションの実行に必要なファイルをパッケージ化して配布する標準的な方法です。Python wheel タスクを使用すると、ジョブに Python コードを迅速かつ確実にインストールできます。この記事では、 Python wheel ファイルと、 Python wheel ファイルにパッケージ化されたアプリケーションを実行するジョブを作成する例を示します。 この例では、次のことを行います。

  • サンプル アプリケーションを定義する Python ファイルを作成します。
  • サンプル ファイルを Python wheel ファイルにバンドルします。
  • Python wheel ファイルを実行するジョブを作成します。
  • ジョブを実行し、結果を表示する。

始める前に

この例を完了するには、次のものが必要です。

  • Python3

  • Python wheelsetuptool パッケージ。 pip を使用して、これらのパッケージをインストールできます。たとえば、次のコマンドを実行して、これらのパッケージをインストールできます。

    Bash
    pip install wheel setuptools

ステップ 1: 例のローカル ディレクトリを作成する

サンプルコードと生成されたアーティファクトを保持するローカルディレクトリを作成します (例: . databricks_wheel_test.

ステップ 2: サンプル Python スクリプトを作成する

次の Python の例は、入力引数を読み取り、それらの引数を出力する単純なスクリプトです。 このスクリプトをコピーして、前のステップで作成したディレクトリの my_test_code/__main__.py というパスに保存します。

Python
"""
The entry point of the Python Wheel
"""

import sys

def main():
# This method will print the provided arguments
print('Hello from my func')
print('Got arguments:')
print(sys.argv)

if __name__ == '__main__':
main()

ステップ 3: パッケージのメタデータ ファイルを作成する

次のファイルには、パッケージを説明するメタデータが含まれています。 これを、手順 1 で作成したディレクトリ内の my_test_code/__init__.py というパスに保存します。

Python
__version__ = "0.0.1"
__author__ = "Databricks"

ステップ4: Python wheel ファイルを作成する

PythonアーティファクトをPython wheelファイルに変換するには、パッケージ名やエントリポイントなどのパッケージメタデータを指定する必要があります。次のスクリプトは、このメタデータを定義します。

注記

このスクリプトで定義されている entry_points は、Databricks ワークフローでパッケージを実行するために使用されます。 entry_pointsの各値では、= の前の値 (この例では run) がエントリ ポイントの名前であり、 Python wheel タスクの構成に使用されます。

  1. このスクリプトを、手順 1 で作成したディレクトリのルートにある setup.py という名前のファイルに保存します。

    Python
    from setuptools import setup, find_packages

    import my_test_code

    setup(
    name='my_test_package',
    version=my_test_code.__version__,
    author=my_test_code.__author__,
    url='https://databricks.com',
    author_email='john.doe@databricks.com',
    description='my test wheel',
    packages=find_packages(include=['my_test_code']),
    entry_points={
    'group_1': 'run=my_test_code.__main__:main'
    },
    install_requires=[
    'setuptools'
    ]
    )
  2. ステップ 1 で作成したディレクトリに移動し、次のコマンドを実行してコードを Python wheel ディストリビューションにパッケージ化します。

    Bash
    python3 setup.py bdist_wheel

このコマンドは、 Python wheel ファイルを作成し、ディレクトリ内のdist/my_test_package-0.0.1-py3.none-any.whlファイルに保存します。

ステップ5.Python wheel ファイルを実行するジョブを作成する

  1. ワークスペースで、サイドバーの ワークフローアイコン。 ジョブ & パイプライン をクリックします。

  2. 作成 をクリックし、 ジョブ をクリックします。

    タスク タブは、空のタスクペインとともに表示されます。

注記

LakeFlowジョブUIオン の場合は、 Python wheel タイルをクリックして最初のタスクを構成します。 Python wheel タイルが使用できない場合は、[ 別のタスクの種類を追加 ] をクリックし、「 Python wheel 」を検索します。

  1. オプションで、ジョブの名前 (デフォルトは New Job <date-time> ) をジョブ名に置き換えます。

  2. タスク名 に、タスクの名前を入力します。

  3. 必要に応じて、[ タイプ ]ドロップダウンメニューから[ Python wheel ]を選択します。

  4. パッケージ名 に「my_test_package」と入力します。 パッケージ名 の値は、インポートする Python パッケージの名前です。この例では、パッケージ名は setup.pyname パラメーターに割り当てられた値です。

  5. エントリ ポイント に「run」と入力します。エントリ ポイントは、setup.py スクリプトの entry_points コレクションで指定された値の 1 つです。この例では、 run が定義されている唯一のエントリ ポイントです。

  6. コンピュート で、既存のジョブ クラスターを選択するか、 新しいジョブ クラスター を追加します。

  7. Python wheelファイルを指定します。

    • [ 環境とライブラリ] 鉛筆アイコン。ドロップダウンで、[ デフォルト] の横にある をクリックして編集します。または、「 新規環境の追加 」をクリックして、新規環境を構成します。
    • [ 環境の構成] ダイアログで、[ 依存関係の追加 ] をクリックします。
    • フォルダ アイコン フォルダアイコン をクリックして、ファイル ブラウザを開きます。ステップ 4 で作成したホイール ファイルを [ 依存関係の選択 ] ダイアログにドラッグ アンド ドロップします。
    • 確認 をクリックします。
  8. パラメーター で、 位置指定の引数 または キーワード引数 を選択して、各パラメーターのキーと値を入力します。

    • 位置引数を入力するには、パラメーターを JSON形式の文字列の配列として入力します (例: ["first argument","first value","second argument","second value"])。
    • キーワード引数を入力するには、 + 追加 をクリックし、キーと値を入力します。 もう一度 + 追加 をクリックして、さらに引数を入力します。
  9. タスクを作成 」をクリックします。

ステップ 6: ジョブを実行し、ジョブの実行詳細を表示する

[ 「今すぐ実行」ボタン ] をクリックしてワークフローを実行します。実行の詳細 を表示するには、 実行 タブをクリックし、ジョブ 実行ビューで実行の開始 時刻 列のリンクをクリックします。

実行が完了すると、タスクに渡された引数を含む出力が 出力 パネルに表示されます。

次のステップ

ジョブの作成と実行の詳細については、Lakeflowジョブを参照してください。