共用方式為


Databricks Asset Bundles 程式庫相依性

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

除了筆記本之外,您的 Azure Databricks 作業可能相依於連結庫,才能如預期般運作。 適用於本機開發的 Databricks 資產組合相依性是在套件組合專案根目錄的檔案中指定requirements*.txt,但是作業工作連結庫相依性會在您的套件組合組態檔中宣告,而且通常是作業工作類型規格的一部分。

套件組合支援 Azure Databricks 作業的下列連結庫相依性:

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

注意

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

Python 滾輪檔案

若要將 Python 滾輪檔案新增至作業工作,請在 中 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 檔案

若要將 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

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*