Python ホイール ファイル は、Python アプリケーションの実行に必要なファイルをパッケージ化して配布するための標準的な方法です。 Python ホイール タスクを使用すると、ジョブに高速で信頼性の高い Python コードを確実にインストールできます。 この記事では、Python ホイール ファイルと、Python ホイール ファイルにパッケージ化されたアプリケーションを実行するジョブを作成する例を示します。 この例では、次の操作を行います。
- サンプル アプリケーションを定義する Python ファイルを作成します。
- サンプル ファイルを Python ホイール ファイルにバンドルします。
- Python ホイール ファイルを実行するためのジョブを作成します。
- ジョブを実行し、結果を表示します。
始める前に
この例を実行するためには次が必要です。
Python3
Python
wheelおよびsetuptoolパッケージ。pipを使用して、これらのパッケージをインストールできます。 たとえば、次のコマンドを実行して、これらのパッケージをインストールできます。pip install wheel setuptools
手順 1: 例のローカル ディレクトリを作成する
サンプル コードと生成された成果物を保持するローカル ディレクトリを作成します (例: databricks_wheel_test)。
手順 2: 例の Python スクリプトを作成する
次の Python の例は、入力引数を読み取り、それらの引数を出力する単純なスクリプトです。 このスクリプトをコピーし、前の手順で作成したディレクトリ内の my_test_code/__main__.py というパスに保存します。
"""
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 というパスに保存します。
__version__ = "0.0.1"
__author__ = "Databricks"
手順 4: Python ホイール ファイルを作成する
Python 成果物を Python ホイール ファイルに変換するには、パッケージ名やエントリ ポイントなどのパッケージ メタデータを指定する必要があります。 次のスクリプトでは、このメタデータを定義します。
メモ
このスクリプトで定義されている entry_points は、Azure Databricks ワークフローでパッケージを実行するために使用されます。
entry_points の各値で、= の前の値 (この例では run) はエントリ ポイントの名前であり、Python ホイール タスクの構成に使用されます。
このスクリプトを、手順 1 で作成したディレクトリのルートにある
setup.pyという名前のファイルに保存します。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' ] )手順 1 で作成したディレクトリに移動し、次のコマンドを実行して、コードを Python ホイール ディストリビューションにパッケージ化します。
python3 setup.py bdist_wheel
このコマンドを実行すると、Python ホイール ファイルが作成され、ディレクトリ内の dist/my_test_package-0.0.1-py3.none-any.whl ファイルに保存されます。
ステップ 5: Python ホイール ファイルを実行するジョブを作成する
ワークスペースで、[ワークフロー] アイコンをクリック
サイドバーのジョブとパイプライン。
[ 作成]、[ ジョブ] の順にクリックします。
Python ホイール タイルをクリックして、最初のタスクを構成します。 Python ホイール タイルを使用できない場合は、[別のタスクの種類の追加] をクリックして Python ホイールを検索します。
必要に応じて、ジョブの名前 (既定では
New Job <date-time>) をジョブ名に置き換えます。[タスク名] にタスクの名前を入力します。
必要に応じて、[種類] ドロップダウン メニューから Python ホイールを選択します。
[パッケージ名] に「
my_test_package」と入力します。 パッケージ名 値は、インポートする Python パッケージの名前です。 この例では、パッケージ名は、nameのsetup.pyパラメーターに割り当てられた値です。[エントリ ポイント] に「
run」と入力します。 エントリ ポイントは、entry_pointsスクリプトのsetup.pyコレクションで指定された値の 1 つです。 この例では、runが定義されている唯一のエントリ ポイントです。[コンピューティング] で、既存のジョブ クラスターを選択するか、新しいジョブ クラスターを追加します。
Python ホイール ファイルを指定します。
- [ 環境とライブラリ ] ドロップダウンで、[
をクリックします。 [既定値] の横にある鉛筆アイコンをクリックして編集します。 または、[ 新しい環境の追加 ] をクリックして新しい環境を構成します。
- [ 環境の構成 ] ダイアログで、[ 依存関係の追加] をクリックします。
- フォルダー
をクリックして、ファイル ブラウザーを開きます。 手順 4 で作成したホイール ファイルを [ 依存関係の選択 ] ダイアログにドラッグ アンド ドロップします。 - [Confirm](確認) をクリックします。
- [ 環境とライブラリ ] ドロップダウンで、[
[パラメーター] で、[位置引数] または [キーワード引数] を選択して、各パラメーターのキーと値を入力します。 位置引数とキーワード引数の両方が、コマンド ライン引数として Python ホイール タスクに渡されます。
- 位置引数を入力するには、文字列の JSON 形式の配列としてパラメーターを入力します (例:
["first argument","first value","second argument","second value"])。 - キーワード引数を入力するには、[+ 追加] をクリックしてキーと値を入力します。 もう一度 [+ 追加] をクリックして、他の引数を入力します。
- 位置引数を入力するには、文字列の JSON 形式の配列としてパラメーターを入力します (例:
[タスクの作成] をクリックします。
手順 6: ジョブを実行し、ジョブの実行の詳細を表示する
をクリックしてワークフローを実行します。
実行の詳細を表示するには、[実行] タブをクリックし、[ジョブ実行] ビューの実行の [開始時刻] 列のリンクをクリックします。
実行が完了すると、[出力] パネルに、タスクに渡された引数を含む出力が表示されます。
次のステップ
ジョブの作成と実行の詳細については、「 Lakeflow ジョブ」を参照してください。