共用方式為


Databricks Asset Bundles 程式庫相依性

本文說明宣告 Databricks 資產組合連結庫相依性的語法。 套件組合可讓您以程序設計方式管理 Lakeflow 作業。 請參閱什麼是 Databricks Asset Bundles?

除了筆記本和原始檔案之外,您的作業可能依賴於函式庫,才能如預期般運作。 連結庫相依性會在 套件組合組態檔 中宣告,而且通常是作業 工作類型 規格的一部分。

軟體包提供下列函式庫相依性的支援:

  • Python 滾輪檔案
  • JAR 檔案 (Java 或 Scala)
  • PyPI、Maven 或CRAN套件

針對 Python,您也可以在檔案中 requirements.txt 指定作業工作相依性,並將該相依性包含在套件組合中。 請參閱 Python requirements.txt

備註

是否支持連結庫取決於叢集組態和連結庫來源。 如需完整的連結庫支援資訊,請參閱 安裝連結庫

Python 滾輪檔案

若要將 Python wheel 檔案新增至工作,請在 libraries 中指定每個要安裝的程式庫 whl 對應。 您可以從工作區檔案、Unity 目錄磁碟區、雲端物件記憶體或本機檔案路徑安裝轉輪檔案。

重要

使用 Databricks Runtime 14.3 LTS 及更舊版本時,可從 DBFS 安裝程式庫。 不過,任何工作區使用者都可以修改儲存在 DBFS 的程式庫檔案。 若要提高 Azure Databricks 工作區中的程式庫的安全性,從 Databricks Runtime 15.1 和更新版本開始,DBFS 根目錄中的程式庫檔案預設將被棄用且停用。 請參閱 在 DBFS 根目錄中儲存函式庫已被棄用,預設為停用

相反地,Databricks 建議 將所有連結庫,包括 Python 連結庫、JAR 檔案和 Spark 連接器上傳至工作區檔案或 Unity 目錄磁碟區,或使用連結庫套件存放庫。 如果您的工作負載不支援這些模式,您也可以使用儲存在雲端物件記憶體的程式庫。

下列範例示範如何為作業工作安裝三個 Python 滾輪檔案。

  • 第一個 Python 轉輪檔案先前已上傳至 Azure Databricks 工作區,或作為 include 專案新增至 sync對應中,並且位於與套件組合設定檔相同的本機資料夾中。
  • 第二個 Python 轉輪檔案位於 Azure Databricks 工作區中指定的工作區檔案位置。
  • 第三個 Python 轉輪檔案先前已上傳至 Azure Databricks 工作區中名為 my-volume 的磁碟區。
resources:
  jobs:
    my_job:
      # ...
      tasks:
        - task_key: my_task
          # ...
          libraries:
            - whl: ./my-wheel-0.1.0.whl
            - whl: /Workspace/Shared/Libraries/my-wheel-0.0.1-py3-none-any.whl
            - whl: /Volumes/main/default/my-volume/my-wheel-0.1.0.whl

JAR 檔案 (Java 或 Scala)

若要將 JAR 檔案新增至作業工作,請在libraries中指定每個要安裝的程式庫對應jar。 您可以從 Unity 目錄磁碟區、雲端物件記憶體或本機檔案路徑安裝 JAR。

重要

使用 Databricks Runtime 14.3 LTS 及更舊版本時,可從 DBFS 安裝程式庫。 不過,任何工作區使用者都可以修改儲存在 DBFS 的程式庫檔案。 若要提高 Azure Databricks 工作區中的程式庫的安全性,從 Databricks Runtime 15.1 和更新版本開始,DBFS 根目錄中的程式庫檔案預設將被棄用且停用。 請參閱 在 DBFS 根目錄中儲存函式庫已被棄用,預設為停用

相反地,Databricks 建議 將所有連結庫,包括 Python 連結庫、JAR 檔案和 Spark 連接器上傳至工作區檔案或 Unity 目錄磁碟區,或使用連結庫套件存放庫。 如果您的工作負載不支援這些模式,您也可以使用儲存在雲端物件記憶體的程式庫。

下列範例示範如何安裝先前上傳至 Azure Databricks 工作區中名為 my-volume 之磁碟區的 JAR 檔案。

resources:
  jobs:
    my_job:
      # ...
      tasks:
        - task_key: my_task
          # ...
          libraries:
            - jar: /Volumes/main/default/my-volume/my-java-library-1.0.jar

如需建置和部署 JAR 的組態,請參閱 將 JAR 檔案上傳至 Unity 目錄的套件組合。 如需建立建置及部署 Scala JAR 之配套專案的教學課程,請參閱 使用 Databricks 資產套件組合建置 Scala JAR

PyPI 套件

若要將 PyPI 套件新增至作業工作定義,請在 libraries 中指定每個待安裝的 PyPI 套件的對應關係 pypi。 針對每個對應,指定下列項目:

  • 針對 package,指定要安裝的 PyPI 套件名稱。 另外,還支援選用的確切版本規格。
  • 選擇性地,針對 repo,指定可找到 PyPI 套件的存放庫。 如果未指定,則會使用預設 pip 索引 (https://pypi.org/simple/)。

下列範例示範如何安裝兩個 PyPI 套件。

  • 第一個 PyPI 套件會使用指定的套件版本和預設 pip 索引。
  • 第二個 PyPI 套件會使用指定的套件版本和明確指定的 pip 索引。
resources:
  jobs:
    my_job:
      # ...
      tasks:
        - task_key: my_task
          # ...
          libraries:
            - pypi:
                package: wheel==0.41.2
            - pypi:
                package: numpy==1.25.2
                repo: https://pypi.org/simple/

Maven 套件

若要將 Maven 套件新增至作業工作定義,請在 libraries 中指定每個要安裝的 Maven 套件的 maven 對應。 針對每個對應,指定下列項目:

  • 針對 coordinates,指定 Gradle 樣式的 Maven 座標以封裝軟體包。
  • 或者,針對 repo,指定要從中安裝 Maven 套件的 Maven 存放庫。 如果省略,則會搜尋 Maven 中央存放庫和 Spark 套件存放庫。
  • 或者,針對 exclusions,指定要明確排除的任何相依性。 請參閱 Maven 相依性排除專案

下列範例示範如何安裝兩個 Maven 套件。

  • 第一個 Maven 套件會使用指定的套件座標,並在 Maven 中央存放庫和 Spark 套件存放庫中搜尋此套件。
  • 第二個 Maven 套件會使用指定的套件座標、只在 Maven 中央存放庫中搜尋此套件,而且不包含符合指定模式的任何套件相依性。
resources:
  jobs:
    my_job:
      # ...
      tasks:
        - task_key: my_task
          # ...
          libraries:
            - maven:
                coordinates: com.databricks:databricks-sdk-java:0.8.1
            - maven:
                coordinates: com.databricks:databricks-dbutils-scala_2.13:0.1.4
                repo: https://mvnrepository.com/
                exclusions:
                  - org.scala-lang:scala-library:2.13.0-RC*

Python requirements.txt

Python 程式庫相依性也可以在作業任務定義中包含的 requirements*.txt 檔案內指定。 檔案的路徑可以是本機路徑、工作區路徑或 Unity 目錄磁碟區路徑。

resources:
  jobs:
    my_job:
      # ...
      tasks:
        - task_key: my_task
          # ...
          libraries:
            - requirements: ./local/path/requirements.txt