在 Azure Databricks 作業中使用 Python Wheel 檔案
Python Wheel 檔案是封裝及散發執行 Python 應用程式所需檔案的標準方式。 使用 Python Wheel 工作,您可以確保 Azure Databricks 作業中快速且可靠的 Python 程式碼安裝。 本文提供建立 Python Wheel 的範例,以及執行在 Python Wheel 中封裝之應用程式的作業。 在此範例中,您將會:
- 建立定義範例應用程式的 Python 檔案。
- 將範例檔案組合成 Python Wheel 檔案。
- 建立作業以執行 Python Wheel 檔案。
- 執行作業並檢視結果。
開始之前
若要完成此範例,您需要下列各項:
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 Wheel 檔案
將 Python 成品轉換成 Python Wheel 檔案需要指定套件中繼資料,例如套件名稱和進入點。 下列指令碼會定義此中繼資料。
注意
此指令碼中定義的 entry_points
是用來在 Azure Databricks 工作流程中執行套件。 在 entry_points
中的每個值,在 =
之前的值 (在此範例中,run
) 是進入點的名稱,用來設定 Python Wheel 工作。
將此指令碼儲存於您在步驟 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 Wheel 散發:
python3 setup.py bdist_wheel
此命令會建立 Python Wheel 檔案,並將它儲存至目錄中的 dist/my_test_package-0.0.1-py3.none-any.whl
檔案。
步驟 5. 建立 Azure Databricks 作業以執行 Python Wheel 檔案
移至您的 Azure Databricks 登陸頁面,並執行下列其中一項:
- 按下側邊欄中的 [工作流程],然後按下 。
- 在側邊欄中,按下 [新增],然後從功能表中選取 [作業]。
在 [工作] 索引標籤上出現的 [工作] 對話方塊中,以您的作業名稱取代 [新增工作名稱...],例如
Python wheel example
。在 [工作名稱] 欄位中,輸入工作名稱,例如
python_wheel_task
。在 [類型] 中,選取 [Python Wheel]。
在 [套件名稱] 中,輸入
my_test_package
。 [套件名稱] 值是要匯入的 Python 套件名稱。 在此範例中,套件名稱是指派給setup.py
中的name
參數值。在 [進入點]中,輸入
run
。 進入點是setup.py
指令碼中entry_points
集合指定的其中一個值。 在此範例中,run
是唯一定義的進入點。在 [計算] 中,選取現有的作業叢集或 [新增作業叢集]。
按下 [相依程式庫] 下的 [新增]。 在 [新增相依程式庫] 對話方塊中,選取 [工作區],將步驟 4 中建立的
my_test_package-0.0.1-py3-none-any.whl
檔案拖曳到對話方塊的 [卸除檔案] 區域。按一下新增。
在 [參數] 中,選取 [位置引數] 或 [關鍵字] 引數,以輸入索引鍵和每個參數的值。 位置引數和關鍵字引數都會以命令列引數的形式傳遞至 Python Wheel 工作。
- 若要輸入位置引數,請輸入參數做為 JSON 格式的字串陣列,例如:
["first argument","first value","second argument","second value"]
。 - 若要輸入關鍵字引數,請按下 [+ 新增],然後輸入索引鍵和值。 再次按下 [+ 新增] 以輸入更多引數。
- 若要輸入位置引數,請輸入參數做為 JSON 格式的字串陣列,例如:
按一下 [建立工作]。
步驟 6:執行作業並檢視作業執行詳細資料
按下 以執行工作流程。 若要檢視 [執行的詳細資料],請按下 [觸發的執行] 快顯視窗中的 [檢視執行],或按下 [作業執行] 檢視中執行之 [開始時間] 資料行中的連結。
執行完成時,輸出會顯示在 [輸出] 面板中,包括傳遞至工作的引數。
後續步驟
若要深入瞭解如何建立和執行 Azure Databricks 作業,請參閱排程和協調工作流程。