程式庫

若要讓協力廠商或自訂程式碼可供您叢集上執行的筆記本和工作使用,您可以安裝程式庫。 連結庫可以用 Python、Java、Scala 和 R 撰寫。您可以上傳 Python、Java 和 Scala 連結庫,並指向 PyPI、Maven 和 CRAN 存放庫中的外部套件。

Azure Databricks 在 Databricks Runtime 中包含許多通用程式庫。 若要查看包含在 Databricks Runtime 中的程式庫,請查看 Databricks Runtime 版本資訊系統環境小節,以了解您的 Databricks Runtime 版本。

注意

Microsoft 支援服務有助於找出並解決與 Azure Databricks 所安裝和維護的程式庫相關的問題。 對於包括程式庫在內的第三方元件,Microsoft 提供了符合商業原則的支援,以協助您進一步針對問題進行疑難排解。 Microsoft 支援服務會盡全力提供協助,或許能幫助您解決問題。 針對 Github 上託管的開放原始碼連接器和專案,我們建議您在 Github 上提出問題並追蹤。 透過標準支援案例提交程式,不支援像是陰影 jar 或建立 Python 程式庫等開發工作:他們需要諮詢互動,以加快解決速度。 支援可能會要求您接觸其他管道,以獲得開放原始碼技術並於其中找到該技術的深度專業知識。 這樣的社群網站有好幾個;其中的兩個範例是 Azure Databricks 的 Microsoft Q&A 頁面Stack Overflow

叢集範圍的連結庫

您可以在叢集上安裝連結庫,讓叢集上執行的所有筆記本和作業都能使用它們。 Databricks 支援 Python、JAR 和 R 連結庫。 請參閱叢集程式庫

您可以直接從下列來源安裝叢集連結庫:

並非所有位置都支援所有類型的連結庫或所有計算組態。 如需設定建議,請參閱上傳連結庫 建議。

重要

使用 Databricks Runtime 14.3 LTS 和以下版本時,可以從 DBFS 安裝連結庫。 不過,任何工作區使用者都可以修改儲存在 DBFS 中的連結庫檔案。 若要改善 Azure Databricks 工作區中連結庫的安全性,在 Databricks Runtime 15.0 和更新版本中預設會淘汰和停用 DBFS 根目錄中的連結庫檔案。 請參閱 在 DBFS 根目錄中儲存連結庫已被取代,並預設為停用。

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

如需完整的連結庫支持資訊,請參閱 Python 連結庫支援Java 和 Scala 連結庫支援,以及 R 連結庫支援

用於上傳連結庫的 建議

Databricks 支援大部分的 Python、JAR 和 R 連結庫組態安裝,但有些不支援的案例。 建議您將連結庫上傳至支援以共用存取模式安裝到計算的來源位置,因為這是所有工作負載的建議模式。 請參閱 存取模式。 使用共用存取模式排程工作流程時,請使用 服務主體執行工作流程。

重要

只有在共用存取模式不支援必要的功能時,才能搭配單一使用者存取模式使用計算。 不建議在 Databricks 上設定任何隔離共用存取模式。

下表提供 Databricks Runtime 版本和 Unity 目錄啟用所組織的建議。

組態 建議
使用 Unity 目錄的 Databricks Runtime 13.3 LTS 和更新版本 從 Unity 目錄磁碟區安裝具有共用存取模式的計算連結庫,並針對所有帳戶使用者授與 READ。

如果適用,Maven 座標和 JAR 連結庫路徑必須新增至 允許清單
不含 Unity 目錄的 Databricks Runtime 11.3 LTS 和更新版本 工作區檔案安裝連結庫。 (檔案大小限制為 500 MB。)
Databricks Runtime 10.4 LTS 和以下版本 雲端物件記憶體安裝連結庫。

Python 連結庫支援

下表指出 Python 轉輪檔案的 Databricks 執行時間版本相容性,適用於以連結庫來源位置為基礎的不同叢集存取模式。 請參閱 Databricks Runtime 版本資訊版本和相容性存取模式

透過 Databricks Runtime 15.0 和更新版本,您可以使用 requirements.txt 檔案 來管理 Python 相依性。 這些檔案可以上傳至任何支援的來源位置。

注意

Databricks Runtime 14.0 和更新版本不支援安裝 Python Egg 檔案。 請改用 Python 轉輪檔案,或從 PyPI 安裝套件。

共用存取模式 單一使用者存取模式 沒有隔離共享存取模式 (舊版)
PyPI 13.3 LTS 和更新版本 所有支援的 Databricks 執行時間版本 所有支援的 Databricks 執行時間版本
工作區檔案 13.3 LTS 和更新版本 13.3 LTS 和更新版本 14.1 和更新版本
磁碟區 13.3 LTS 和更新版本 13.3 LTS 和更新版本 不支援
雲端儲存空間 13.3 LTS 和更新版本 所有支援的 Databricks 執行時間版本 所有支援的 Databricks 執行時間版本
DBFS (不建議) 不支援 14.3 和以下版本 14.3 和以下版本

Java 和 Scala 連結庫支援

下表根據連結庫來源位置,指出不同叢集存取模式 JAR 檔案的 Databricks 運行時間版本相容性。 請參閱 Databricks Runtime 版本資訊版本和相容性存取模式

注意

共用存取模式需要系統管理員將 JAR 連結庫的 Maven 座標和路徑新增至 allowlist。 請參閱 共享計算上的 Allowlist 連結庫和 init 腳本。

共用存取模式 單一使用者存取模式 沒有隔離共享存取模式 (舊版)
Maven 13.3 LTS 和更新版本 所有支援的 Databricks 執行時間版本 所有支援的 Databricks 執行時間版本
工作區檔案 不支援 不支援 14.1 和更新版本
磁碟區 13.3 LTS 和更新版本 13.3 LTS 和更新版本 不支援
雲端儲存空間 13.3 LTS 和更新版本 所有支援的 Databricks 執行時間版本 所有支援的 Databricks 執行時間版本
DBFS (不建議) 不支援 14.3 和以下版本 14.3 和以下版本

R 連結庫支援

下表指出適用於不同叢集存取模式之CRAN套件的 Databricks 運行時間版本相容性。 請參閱 Databricks Runtime 版本資訊版本和相容性存取模式

共用存取模式 單一使用者存取模式 沒有隔離共享存取模式 (舊版)
CRAN 不支援 所有支援的 Databricks 執行時間版本 所有支援的 Databricks 執行時間版本

筆記本範圍的連結庫

適用於 Python 和 R 的筆記本範圍連結庫可讓您安裝連結庫,並建立範圍設定為筆記本會話的環境。 這些連結庫不會影響在相同叢集上執行的其他筆記本。 筆記本範圍的連結庫不會保存,而且必須針對每個會話重新安裝。 當您需要特定筆記本的自訂環境時,請使用筆記本範圍的程式庫。

注意

無法在筆記本層級安裝 JAR。

重要

工作區連結庫已被取代,不應使用。 請參閱工作區連結庫(舊版)。 不過,將連結庫儲存為工作區檔案與工作區連結庫不同,但仍受到完全支援。 您可以直接將儲存為工作區檔案的連結庫安裝到計算或作業工作。

Python 環境管理

下表提供可用來在 Azure Databricks 中安裝 Python 連結庫的選項概觀。

注意

Python 套件來源 具有 %pip 的筆記本範圍連結庫 叢集程式庫 使用作業 API 的作業連結庫
PyPI 使用 %pip install。 請參閱 範例 選取 [PyPI] 作為來源 將新的 pypi 物件新增至作業連結庫,並指定 package 欄位。
私人 PyPI 鏡像,例如 Nexus 或 Artifactory 使用 %pip install--index-url 選項。 秘密管理 可供使用。 請參閱 範例 不支援。 不支援。
具有原始來源的 VCS,例如 GitHub 使用 %pip install 並指定存放庫 URL 做為套件名稱。 請參閱 範例 選取 [PyPI] 作為來源 ,並將存放庫 URL 指定為套件名稱。 將新的 pypi 物件新增至作業連結庫,並將存放庫 URL 指定為 package 欄位。
具有原始來源的私人 VCS 使用 %pip install 並指定具有基本身份驗證的存放庫 URL 作為套件名稱。 秘密管理 可供使用。 請參閱 範例 不支援。 不支援。
檔案路徑 使用 %pip install。 請參閱 [example](/libraries/notebooks-python-libraries.md#workspace-files。 選取 [檔案路徑/ADLS ] 作為來源。 將新的 eggwhl 物件新增至作業連結庫,並將檔案路徑指定為 package 欄位。
Azure Data Lake Storage Gen2 與預先簽署的 URL 搭配使用 %pip install 。 不支援 Azure Data Lake 儲存體 Gen2 通訊協議abfss://的路徑。 選取 [檔案路徑/ADLS ] 作為來源。 將新的 eggwhl 物件新增至作業連結庫,並將 Azure Data Lake 儲存體 Gen2 路徑指定為 package 字段。

Python 連結庫優先順序

您可能會遇到需要覆寫內建連結庫版本的情況,或有自定義連結庫與叢集上安裝的另一個連結庫發生名稱衝突的情況。 當您執行 import <library>時,會匯入優先順序較高的連結庫。

重要

儲存在工作區檔案中的連結庫的優先順序不同,視它們新增至 Python sys.path的方式而定。 Databricks Git 資料夾會將目前的工作目錄新增至所有其他連結庫之前的路徑,而 Git 資料夾外的筆記本會在安裝其他連結庫之後新增目前的工作目錄。 如果您手動將工作區目錄附加至您的路徑,這些目錄一律具有最低優先順序。

下列清單順序的優先順序從最高到最低。 在此清單中,較低的數位表示較高的優先順序。

  1. 目前工作目錄中的連結庫(僅限 Git 資料夾)。
  2. Git 資料夾根目錄中的連結庫(僅限 Git 資料夾)。
  3. 筆記本範圍的連結庫 (%pip install 在筆記本中)。
  4. 叢集連結庫(使用UI、CLI或 API)。
  5. Databricks Runtime 中包含的連結庫。
    • 使用 init 腳本安裝的連結庫,可能會根據內建連結庫的安裝方式,在內建連結庫之前或之後解決。 Databricks 不建議使用 init 腳本安裝連結庫。
  6. 目前工作目錄中的連結庫(不在 Git 資料夾中)。
  7. 附加至 的 sys.path工作區檔案。