適用於:
Azure Data Factory
Azure Synapse Analytics
提示
Data Factory in Microsoft Fabric 是下一代的 Azure Data Factory,擁有更簡單的架構、內建 AI 及新功能。 如果你是資料整合新手,建議先從 Fabric Data Factory 開始。 現有的 ADF 工作負載可升級至 Fabric,以存取資料科學、即時分析與報告等新能力。
管線中的 Azure Databricks Notebook Activity,會在您的 Azure Databricks 工作區中執行 Databricks Notebook。 本文是以資料轉換活動一文為基礎,該文提供了資料轉換和系統支援的轉換活動的一般概覽。 Azure Databricks 是一個管理平台,用於執行 Apache Spark。
你可以用 JSON 建立帶有 ARM 範本的 Databricks 筆記本,或直接透過 Azure Data Factory Studio 的使用者介面。 如需逐步了解如何利用使用者介面建立 Databricks 筆記本活動,請參考教學在 Azure Data Factory 中使用 Databricks 筆記本活動執行。
將 Azure Databricks 的 Notebook 活動新增至具有使用者介面的管線中
若要在管線中使用 Azure Databricks 的筆記本活動,請完成以下步驟:
在 [管線活動] 窗格中搜尋 Notebook,然後將 Notebook 活動拖曳至管線畫布。
如果尚未選取,請在畫布上選取新的 Notebook 活動項目。
請選擇 Azure Databricks 標籤,選擇或建立一個新的Azure Databricks連結服務,以執行筆記本活動。
選擇 Settings 標籤,指定要在 Azure Databricks 執行的筆記本路徑、要傳遞給筆記本的可選基礎參數,以及叢集上安裝的其他函式庫以執行該工作。
Databricks Notebook 活動定義
以下是 Databricks Notebook 活動的範例 JSON 定義:
{
"activity": {
"name": "MyActivity",
"description": "MyActivity description",
"type": "DatabricksNotebook",
"linkedServiceName": {
"referenceName": "MyDatabricksLinkedservice",
"type": "LinkedServiceReference"
},
"typeProperties": {
"notebookPath": "/Users/user@example.com/ScalaExampleNotebook",
"baseParameters": {
"inputpath": "input/folder1/",
"outputpath": "output/"
},
"libraries": [
{
"jar": "dbfs:/docs/library.jar"
}
]
}
}
}
Databricks Notebook 活動屬性
下表說明 JSON 定義中使用的 JSON 屬性:
| 屬性 | 描述 | 必要 |
|---|---|---|
| 名稱 | 管線中的活動名稱。 | Yes |
| 說明 | 說明活動用途的文字。 | No |
| 型別 | 若是 Databricks Notebook 活動,則活動類型是 DatabricksNotebook。 | Yes |
| linkedServiceName | Databricks Notebook 執行所在之 Databricks 連結服務的名稱。 若要深入了解此已連結的服務,請參閱計算已連結的服務一文。 | Yes |
| 筆記本路徑 | 要在 Databricks 工作區中執行之 Notebook 的絕對路徑。 此路徑必須以斜線開頭。 | Yes |
| 基礎參數 (baseParameters) | 鍵值對的陣列。 基底參數可用於每次活動執行。 如果筆記本採用未指定的參數,則會使用筆記本中的預設值。 在 Databricks Notebook 中尋找更多參數的相關資料。 | No |
| 程式庫 | 要在負責執行工作的叢集上,即將安裝的程式庫清單。 可以是 <字串, 物件> 的陣列。 | No |
Databricks 活動支援的程式庫
在上述的 Databricks 活動定義中,您可指定以下的程式庫類型:jar、egg、whl、maven、pypi、cran。
{
"libraries": [
{
"jar": "dbfs:/mnt/libraries/library.jar"
},
{
"egg": "dbfs:/mnt/libraries/library.egg"
},
{
"whl": "dbfs:/mnt/libraries/mlflow-0.0.1.dev0-py2-none-any.whl"
},
{
"whl": "dbfs:/mnt/libraries/wheel-libraries.wheelhouse.zip"
},
{
"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 活動中使用 baseParameters 屬性,將參數傳遞至筆記本。
在某些情況下,您可能需要將特定值從筆記本傳回服務,這可以用來控制服務內的流程 (條件式檢查),或由下游活動取用 (大小限制為 2 MB)。
在您的筆記本中,您可以呼叫 dbutils.notebook.exit(“returnValue”), 並將對應的 “returnValue” 傳回至服務。
您可以在服務中使用運算式,例如
@{activity('databricks notebook activity name').output.runOutput},來取用輸出。重要
如果您要傳遞 JSON 物件,您可以藉由附加屬性名稱來擷取值。 範例:
@{activity('databricks notebook activity name').output.runOutput.PropertyName}
如何在 Databricks 中上傳程式庫
您可以使用工作區 UI:
使用 Databricks 工作區使用者介面
若要取得使用 UI 所新增程式庫的 dbfs 路徑,您可以使用 Databricks CLI。
使用 UI 時,Jar 程式庫通常會儲存在 dbfs: FileStore/jar。 您可以透過 CLI 來列出所有檔案:databricks fs ls dbfs:/FileStore/job-jars
或者,您可以使用 Databricks CLI:
使用 Databricks CLI (安裝步驟)
舉例來說,若要將 JAR 複製到 dbfs:
dbfs cp SparkPi-assembly-0.1.jar dbfs:/docs/sparkpi.jar