筆記本範圍的 Python 程式庫

筆記本範圍的連結庫可讓您建立、修改、儲存、重複使用及共用筆記本專屬的自定義 Python 環境。 當您安裝筆記本範圍連結庫時,只有目前的筆記本和與該筆記本相關聯的任何作業可以存取該連結庫。 附加至相同叢集的其他筆記本不會受到影響。

筆記本範圍的連結庫不會跨會話保存。 您必須在每個會話開始時重新安裝筆記本範圍的連結庫,或每當筆記本從叢集中斷連結時。

Databricks 建議使用 %pip magic命令來安裝筆記本範圍的 Python 連結庫。

您可以在 %pip 排程為作業的筆記本中使用 。 如果您需要在 Scala、SQL 或 R 筆記本中管理 Python 環境,請使用 %python magic 命令搭配 %pip使用。

使用筆記本範圍連結庫安裝時,您可能會遇到更多驅動程序節點的流量。 請參閱 使用筆記本範圍連結庫時,驅動程式節點應該有多大?

若要安裝連結至叢集之所有筆記本的連結庫,請使用叢集連結庫。 請參閱叢集程式庫

注意

在 Databricks Runtime 10.4 LTS 和以下版本上,您可以使用 Azure Databricks 連結庫公用程式。 連結庫公用程式僅支援 Databricks Runtime,而不是 Databricks Runtime ML。 請參閱 連結庫公用程式 (dbutils.library) (legacy)

使用 %pip 命令管理連結庫

此命令 %pip 相當於 pip 命令,並支援相同的 API。 下列各節示範如何使用 %pip 命令來管理環境。 如需使用 安裝 Python 套件 pip的詳細資訊,請參閱 pip 安裝文件和 相關頁面。

重要

  • 從 Databricks Runtime 13.0 %pip 命令開始,不會自動重新啟動 Python 程式。 如果您安裝新的套件或更新現有的套件,您可能需要使用 dbutils.library.restartPython() 來查看新的套件。 請參閱 在 Azure Databricks 上重新啟動 Python 程式。
  • 在 Databricks Runtime 12.2 LTS 和以下版本上,Databricks 建議將所有命令放在 %pip 筆記本開頭。 筆記本狀態會在修改環境的任何 %pip 命令之後重設。 如果您在筆記本中建立 Python 方法或變數,然後在稍後的儲存格中使用 %pip 命令,方法或變數就會遺失。
  • 升級、修改或卸載核心 Python 套件(例如 IPython), %pip 可能會導致某些功能如預期般停止運作。 如果您遇到這類問題,請藉由中斷連結並重新連結筆記本或重新啟動叢集來重設環境。

使用 安裝連結庫 %pip

%pip install matplotlib

使用 安裝 Python 轉輪套件 %pip

%pip install /path/to/my_package.whl

使用卸載連結庫 %pip

注意

您無法卸載 Databricks Runtime 版本資訊版本資訊和相容性 或已安裝為 叢集連結庫的連結庫。 如果您已安裝的連結庫版本與 Databricks Runtime 中包含的連結庫版本或叢集上安裝的版本不同,您可以使用 %pip uninstall 將連結庫還原為 Databricks Runtime 或叢集上安裝的版本,但您無法使用 %pip 命令來卸載 Databricks Runtime 或安裝在叢集上的連結庫版本。

%pip uninstall -y matplotlib

需要 -y 選項。

使用 從版本控制系統安裝連結庫 %pip

%pip install git+https://github.com/databricks/databricks-cli

您可以將參數新增至 URL,以指定版本或 git 子目錄之類的專案。 如需詳細資訊,請參閱 VCS 支援,以及使用其他版本控制系統的範例。

使用 Databricks 秘密所管理的認證來安裝私人套件 %pip

Pip 支援使用基本身份驗證從私人來源安裝套件,包括私人版本控制系統和私人套件存放庫,例如 NexusArtifactory。 秘密管理可透過 Databricks 秘密 API 取得,可讓您儲存驗證令牌和密碼。 使用 DBUtils API 從筆記本存取秘密。 請注意,您可以在 magic 命令中使用 $variables

若要從私人存放庫安裝套件,請使用 選項指定%pip install存放庫 URL--index-url,或將它新增至 位於 ~/.pip/pip.confpip組態檔。

token = dbutils.secrets.get(scope="scope", key="key")
%pip install --index-url https://<user>:$token@<your-package-repository>.com/<path/to/repo> <package>==<version> --extra-index-url https://pypi.org/simple/

同樣地,您可以使用秘密管理搭配 magic 命令,從版本控制系統安裝私人套件。

token = dbutils.secrets.get(scope="scope", key="key")
%pip install git+https://<user>:$token@<gitprovider>.com/<path/to/repo>

使用 從 DBFS 安裝套件 %pip

重要

任何工作區使用者可以修改儲存在 DBFS 中的檔案。 Azure Databricks 建議將檔案儲存在工作區或 Unity 目錄磁碟區上。

您可以使用 %pip 來安裝已儲存在 DBFS 上的私人套件。

當您將檔案上傳至 DBFS 時,會自動將檔案重新命名,並以底線取代空格、句號和連字元。 針對 Python 轉輪檔案, pip 需要版本 (例如 0.1.0) 和連字元的名稱,而不是空格或底線,因此不會變更這些檔名。

%pip install /dbfs/mypackage-0.0.1-py3-none-any.whl

使用 從磁碟區安裝套件 %pip

重要

這項功能處於公開預覽狀態

使用 Databricks Runtime 13.3 LTS 和更新版本,您可以使用 %pip 來安裝已儲存至磁碟區的私人套件。

當您將檔案上傳至磁碟區時,會自動將檔案重新命名,並以底線取代空格、句號和連字元。 針對 Python 轉輪檔案, pip 需要版本 (例如 0.1.0) 和連字元的名稱,而不是空格或底線,因此不會變更這些檔名。

%pip install /Volumes/<catalog>/<schema>/<path-to-library>/mypackage-0.0.1-py3-none-any.whl

使用 安裝儲存為工作區檔案的套件 %pip

使用 Databricks Runtime 11.3 LTS 和更新版本,您可以使用 %pip 來安裝已儲存為工作區檔案的私人套件。

%pip install /Workspace/<path-to-whl-file>/mypackage-0.0.1-py3-none-any.whl

將連結庫儲存在需求檔案中

%pip freeze > /Workspace/shared/prod_requirements.txt

檔案路徑中的任何子目錄都必須已經存在。 如果您執行 %pip freeze > /Workspace/<new-directory>/requirements.txt,如果目錄 /Workspace/<new-directory> 不存在,命令就會失敗。

使用需求檔案來安裝連結庫

需求 檔案 包含要使用 安裝的 pip套件清單。 使用需求檔案的范例如下:

%pip install -r /Workspace/shared/prod_requirements.txt

如需檔案的詳細資訊,請參閱需求檔格式requirements.txt

使用筆記本範圍連結庫時,驅動程序節點應該有多大?

使用筆記本範圍的連結庫可能會導致更多流量流向驅動程序節點,因為它的運作方式是讓環境在整個執行程式節點之間保持一致。

當您搭配 10 個以上的節點使用叢集時,Databricks 會建議這些規格作為驅動程序節點的最低需求:

  • 針對 100 個節點 CPU 叢集,請使用 Standard_DS5_v2。
  • 針對10個節點 GPU 叢集,請使用 Standard_NC12。

針對較大的叢集,請使用較大的驅動程序節點。

%sh pip可以使用、 !pippip? 有何差異?

%sh 並在 ! 筆記本中執行殼層命令;前者是 Databricks 輔助魔術命令 ,而後者是 IPython 的功能。 pip是啟用自動設定時的速記%pip,這是 Azure Databricks Python 筆記本中的預設值。

在 Databricks Runtime 11.3 LTS 和更新版本、 %pip%sh pip!pip 上,所有都會將連結庫安裝為筆記本範圍的 Python 連結庫。 在 Databricks Runtime 10.4 LTS 和以下版本上,Databricks 建議只 %pip 使用 或 pip 安裝筆記本範圍的連結庫。 和 !pip 的行為%sh pip在 Databricks Runtime 10.4 LTS 和以下版本並不一致。

已知問題

  • 在 Databricks Runtime 9.1 LTS 上,筆記本範圍的連結庫與批次串流作業不相容。 Databricks 建議改用 叢集連結庫IPython 核心