本文將帶你了解在 Azure Databricks 上從雲端物件儲存安裝函式庫所需的步驟。
注意
本文將雲端物件記憶體視為一般概念,並假設您使用 URI 直接與儲存在物件記憶體中的數據互動。 Databricks 建議使用 Unity 目錄磁碟區來設定雲端物件記憶體中檔案的存取權。 請參閱什麼是 Unity Catalog 磁碟區?。
你可以將自訂的 JAR 和 Python Whl 函式庫儲存在雲端物件儲存中,而不是直接存放在 DBFS 根目錄中。 如需完整的函式庫相容性詳細資訊,請參閱 計算範圍函式庫。
重要
使用 Databricks Runtime 14.3 LTS 及更舊版本時,可從 DBFS 安裝程式庫。 不過,任何工作區使用者都可以修改儲存在 DBFS 的程式庫檔案。 為了提升 Azure Databricks 工作空間中函式庫的安全性,在 Databricks Runtime 15.1 及以上版本中預設會棄用並停用在 DBFS 根目錄中的函式庫檔案。 請參閱在 DBFS 根目錄儲存程式庫已不建議使用,並預設為停用。
相反地,Databricks 建議將所有函式庫,包括 Python 函式庫、JAR 檔案和 Spark 連接器,上傳到工作區檔案或 Unity 目錄卷,或使用函式庫套件庫。 如果您的工作負載不支援這些模式,您也可以使用儲存在雲端物件記憶體的程式庫。
將函式庫載入至物件儲存器
您可以使用載入其他檔案的方式,將程式庫載入物件儲存。 您必須在雲端提供者中擁有適當的許可權,才能建立新的物件記憶體容器,或將檔案載入雲端物件記憶體。
授予物件儲存的唯讀權限
Databricks 建議使用唯讀權限設定與程式庫安裝相關的所有權限。
Azure Databricks 允許你為管理雲端物件儲存中資料存取的個別叢集分配安全權限。 您可以擴展這些政策,以新增包含程式庫之雲端物件儲存的唯讀存取權。
注意
在 Databricks Runtime 12.2 LTS 和以下版本中,使用具有標準存取模式的叢集時,您無法載入 JAR 連結庫(先前稱為共用存取模式)。 在 Databricks Runtime 13.3 LTS 和更新版本中,您必須將 JAR 連結庫新增至 Unity 目錄允許清單。 請參閱 使用標準存取模式計算的 Allowlist 連結庫和 init 命令稿(先前稱為共用存取模式)。
Databricks 建議使用 Microsoft Entra ID 服務主體來管理對儲存在 Azure Data Lake Storage 中的程式庫的存取。 使用下列連結的檔案來完成此設定:
在您想要的 Blob 上建立具有閱讀和列表權限的服務主體。 參見 透過服務主體及 Microsoft Entra ID(Azure Active Directory)存取儲存。
使用機密儲存您的憑證。 請參閱 管理秘密。
在建立叢集時設定 Spark 組態和環境變數中的屬性,如下列範例所示:
Spark 組態:
spark.hadoop.fs.azure.account.auth.type.<storage-account>.dfs.core.windows.net OAuth spark.hadoop.fs.azure.account.oauth.provider.type.<storage-account>.dfs.core.windows.net org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider spark.hadoop.fs.azure.account.oauth2.client.id.<storage-account>.dfs.core.windows.net <application-id> spark.hadoop.fs.azure.account.oauth2.client.secret.<storage-account>.dfs.core.windows.net {{secrets/<secret-scope>/<service-credential-key>}} spark.hadoop.fs.azure.account.oauth2.client.endpoint.<storage-account>.dfs.core.windows.net https://login.microsoftonline.com/<tenant-id>/oauth2/token環境變數:
SERVICE_CREDENTIAL={{secrets/<secret-scope>/<service-credential-key>}}(可選)使用
azcopy 或 Azure CLI 重構初始化腳本。 您可以在 init 腳本內的叢集設定期間參考環境變數,以傳遞儲存為驗證秘密的認證。
將程式庫安裝於叢集
若要將儲存在雲端物件記憶體中的連結庫安裝到叢集,請完成下列步驟:
- 從叢集 UI 中的清單中選取叢集。
- 選取庫選項卡。
- 選取 [ 檔案路徑/ADLS ] 選項。
- 提供連結庫物件的完整 URI 路徑(例如 ,
abfss://container-name@storage-account-name.dfs.core.windows.net/path/to/library.whl。 - 按一下 [安裝]。
將程式庫安裝到筆記本程式
你可以使用 %pip 安裝自訂的 Python Wheel 檔案,將其儲存在與筆記本隔離的 SparkSession 相關的物件儲存中。 若要使用此方法,您必須將連結庫儲存在可公開讀取的物件記憶體中,或使用預先簽署的 URL。
請參見 Notebook-scoped Python libraries。
注意
JAR 連結庫無法安裝在筆記本中。 您必須在叢集層級安裝 JAR 連結庫。