共用方式為


在 Azure Databricks 作業中使用 Python Wheel 檔案

Python Wheel 檔案是封裝及散發執行 Python 應用程式所需檔案的標準方式。 使用 Python Wheel 工作,您可以確保 Azure Databricks 作業中快速且可靠的 Python 程式碼安裝。 本文提供建立 Python Wheel 的範例,以及執行在 Python Wheel 中封裝之應用程式的作業。 在此範例中,您將會:

  • 建立定義範例應用程式的 Python 檔案。
  • 將範例檔案組合成 Python Wheel 檔案。
  • 建立作業以執行 Python Wheel 檔案。
  • 執行作業並檢視結果。

開始之前

若要完成此範例,您需要下列各項:

  • Python3

  • Python wheelsetuptool 套件。 您可以使用 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. 將此指令碼儲存於您在步驟 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'
      ]
    )
    
  2. 變更至您在步驟 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 檔案

  1. 移至您的 Azure Databricks 登陸頁面,並執行下列其中一項:

    • 按下側邊欄中的 工作流程圖示 [工作流程],然後按下 [建立作業] 按鈕
    • 在側邊欄中,按下 新增圖示 [新增],然後從功能表中選取 [作業]
  2. 在 [工作] 索引標籤上出現的 [工作] 對話方塊中,以您的作業名稱取代 [新增工作名稱...],例如 Python wheel example

  3. 在 [工作名稱] 欄位中,輸入工作名稱,例如 python_wheel_task

  4. 在 [類型] 中,選取 [Python Wheel]

  5. 在 [套件名稱] 中,輸入 my_test_package。 [套件名稱] 值是要匯入的 Python 套件名稱。 在此範例中,套件名稱是指派給 setup.py 中的 name 參數值。

  6. 在 [進入點]中,輸入 run。 進入點是 setup.py 指令碼中 entry_points 集合指定的其中一個值。 在此範例中,run 是唯一定義的進入點。

  7. 在 [計算] 中,選取現有的作業叢集或 [新增作業叢集]

  8. 按下 [相依程式庫] 下的 [新增]。 在 [新增相依程式庫] 對話方塊中,選取 [工作區],將步驟 4 中建立的 my_test_package-0.0.1-py3-none-any.whl 檔案拖曳到對話方塊的 [卸除檔案] 區域。

  9. 按一下新增

  10. 在 [參數] 中,選取 [位置引數] 或 [關鍵字] 引數,以輸入索引鍵和每個參數的值。 位置引數和關鍵字引數都會以命令列引數的形式傳遞至 Python Wheel 工作。

    • 若要輸入位置引數,請輸入參數做為 JSON 格式的字串陣列,例如:["first argument","first value","second argument","second value"]
    • 若要輸入關鍵字引數,請按下 [+ 新增],然後輸入索引鍵和值。 再次按下 [+ 新增] 以輸入更多引數。
  11. 按一下 [建立工作]

步驟 6:執行作業並檢視作業執行詳細資料

按下 [立即執行] 按鈕 以執行工作流程。 若要檢視 [執行的詳細資料],請按下 [觸發的執行] 快顯視窗中的 [檢視執行],或按下 [作業執行] 檢視中執行之 [開始時間] 資料行中的連結。

執行完成時,輸出會顯示在 [輸出] 面板中,包括傳遞至工作的引數。

後續步驟

若要深入瞭解如何建立和執行 Azure Databricks 作業,請參閱排程和協調工作流程