在 Azure Databricks 作業中使用 Python 轉輪檔案

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

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

開始之前

您需要下列專案才能完成此範例:

  • 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 轉輪檔案

將 Python 成品轉換成 Python 轉輪檔案需要指定套件元數據,例如套件名稱和進入點。 下列文本會定義此元數據。

注意

entry_points此腳本中定義的 是用來在 Azure Databricks 工作流程中執行套件。 在中的每個值中 entry_points,之前 = 的值 (在此範例中, run) 是進入點的名稱,用來設定 Python 滾輪工作。

  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 轉輪散發:

    python3 setup.py bdist_wheel
    

此命令會建立 Python 轉輪檔案,並將它儲存至目錄中的 dist/my_test_package-0.0.1-py3.none-any.whl 檔案。

步驟 5. 建立 Azure Databricks 作業以執行 Python 轉輪檔案

  1. 移至您的 Azure Databricks 登陸頁面,並執行下列其中一項:
    • 在提要欄位中,按兩下 作業圖示[工作流程],然後按下 。 建立作業按鈕
    • 在提要欄位中,按兩下 新增圖示[新增 ],然後從功能表中選取 [作業 ]。
  2. 在 [工作] 索引標籤上出現的 [工作] 對話框中,以您的作業名稱取代 [新增工作名稱...],例如 。 Python wheel example
  3. 在 [ 工作名稱] 中,輸入工作的名稱,例如 python_wheel_task
  4. 在 [ 類型] 中,選取 [Python Wheel]。
  5. [套件名稱] 中,輸入 my_test_package。 封裝名稱是指派給 name 腳本中 setup.py 變數的值。
  6. 進入點中,輸入 run。 進入點是腳本中集合setup.py中指定的entry_points其中一個值。 在此範例中, run 是唯一定義的進入點。
  7. 在 [ 叢集] 中,選取兼容的叢集。 請參閱 叢集範圍的連結庫
  8. 按兩下 [相依連結庫] 底下的 [新增]。 在 [ 新增相依連結庫 ] 對話框中,選取 [工作區 ],將步驟 4 中建立的檔案拖曳 my_test_package-0.0.1-py3-none-any.whl 到對話框的 [卸除檔案] 區域。
  9. 按一下新增
  10. 在 [參數] 中,選取 [位置自變數] 或 [關鍵詞] 自變數,以輸入索引鍵和每個參數的值。 位置自變數和關鍵詞自變數都會以命令行自變數的形式傳遞至 Python 滾輪工作。
    • 若要輸入位置自變數,請輸入參數做為 JSON 格式的字串陣列,例如: ["first argument","first value","second argument","second value"]
    • 若要輸入關鍵詞自變數,請按兩下 [+ 新增 ],然後輸入索引鍵和值。 再次按下 [+ 新增 ] 以輸入更多自變數。
  11. 按兩下 [ 儲存工作]。

步驟 6:執行作業並檢視作業執行詳細數據

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

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

後續步驟

若要深入瞭解如何建立和執行 Azure Databricks 作業,請參閱 建立和執行 Azure Databricks 作業