在 Azure Databricks 中執行 Python 活動來轉換資料

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費開始新的試用

管線中的 Azure Databricks Python 活動會在 Azure Databricks 叢集中執行 Python 檔案。 本文是根據 資料轉換活動 一文,它呈現資料轉換和支援的轉換活動的一般概觀。 Azure Databricks 是用於執行 Apache Spark 的受控平台。

如需此功能的簡介與示範,請觀看下列 11 分鐘長的影片:

使用 UI 將適用於 Azure Databricks 的 Python 活動新增至管線

若要在管線中使用適用於 Azure Databricks 的 Python 活動,請完成下列步驟:

  1. 在管線 [活動] 窗格中搜尋 Python,然後將 Python 活動拖曳至管線畫布。

  2. 如果尚未進行選取,請在畫布上選取新的 Python 活動。

  3. 選取 [Azure Databricks] 索引標籤,以選取或建立將要執行 Python 活動的新 Azure Databricks 連結服務。

    Shows the UI for a Python activity.

  4. 選取 [設定] 索引標籤,並指定 Azure Databricks 內所要執行 Python 檔案的路徑、要傳遞的選擇性參數,以及要安裝在叢集上以執行作業的任何其他程式庫。

    Shows the UI for the Settings tab for a Python activity.

Databricks Python 活動定義

以下是 Databricks Python 活動的 JSON 定義範例:

{
    "activity": {
        "name": "MyActivity",
        "description": "MyActivity description",
        "type": "DatabricksSparkPython",
        "linkedServiceName": {
            "referenceName": "MyDatabricksLinkedService",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "pythonFile": "dbfs:/docs/pi.py",
            "parameters": [
                "10"
            ],
            "libraries": [
                {
                    "pypi": {
                        "package": "tensorflow"
                    }
                }
            ]
        }
    }
}

Databricks Python 活動屬性

下表說明 JSON 定義中使用的 JSON 屬性:

屬性 描述 必要
NAME 管線中的活動名稱。 Yes
description 說明活動用途的文字。 No
type 若是 Databricks Python 活動,則活動類型是 DatabricksSparkPython。 Yes
linkedServiceName Python 活動執行所在之 Databricks 連結服務的名稱。 若要深入了解此已連結的服務,請參閱計算已連結的服務一文。 Yes
pythonFile 要執行之 Python 檔案的 URI。 只支援 DBFS 路徑。 Yes
parameters 將傳遞至 Python 檔案的命令列參數。 這是字串陣列。 No
程式庫 要在負責執行工作的叢集上,即將安裝的程式庫清單。 可以是 <字串, 物件> 的陣列。 No

Databricks 活動支援的程式庫

在上述的 Databricks 活動定義中,您指定以下的程式庫類型: jareggmavenpypicran

{
    "libraries": [
        {
            "jar": "dbfs:/mnt/libraries/library.jar"
        },
        {
            "egg": "dbfs:/mnt/libraries/library.egg"
        },
        {
            "maven": {
                "coordinates": "org.jsoup:jsoup:1.7.2",
                "exclusions": [ "slf4j:slf4j" ]
            }
        },
        {
            "pypi": {
                "package": "simplejson",
                "repo": "http://my-pypi-mirror.com"
            }
        },
        {
            "cran": {
                "package": "ada",
                "repo": "https://cran.us.r-project.org"
            }
        }
    ]
}

如需詳細資訊,請參閱 Databricks 文件 \(英文\),了解程式庫類型。

如何在 Databricks 中上傳程式庫

您可以使用工作區 UI:

  1. 使用 Databricks 工作區 UI

  2. 若要取得使用 UI 所新增程式庫的 dbfs 路徑,您可以使用 Databricks CLI

    使用 UI 時,Jar 程式庫通常會儲存在 dbfs: FileStore/jar。 您可以透過 CLI 來列出所有 Jar 程式庫:databricks fs ls dbfs:/FileStore/job-jars

或者,您可以使用 Databricks CLI:

  1. 請遵循使用 Databricks CLI 複製程式庫

  2. 使用 Databricks CLI (安裝步驟)

    舉例來說,若要將 JAR 複製到 dbfs:dbfs cp SparkPi-assembly-0.1.jar dbfs:/docs/sparkpi.jar