共用方式為


安裝筆記本相依性

您可以使用 [環境] 側邊面板,為無伺服器筆記本安裝 Python 相依性。 此面板提供單一位置來編輯、檢視及導出筆記本的連結庫需求。 您可以使用基底環境或個別新增這些相依性。

含預算原則的無伺服器環境面板

針對非筆記本工作,請參閱 設定非筆記本工作的環境和相依性。

重要

請勿安裝 PySpark 或任何將 PySpark 安裝為無伺服器筆記本相依性的連結庫。 這樣做會停止您的工作階段併產生錯誤。 如果發生這種情況,請移除程式庫,並 重設您的環境

設定基底環境

基底環境是儲存為工作區檔案的 YAML 檔案,或儲存在指定其他環境相依性的 Unity 目錄磁碟區上。 基礎環境可以在筆記本之間共用。 若要設定基底環境:

  1. 建立 YAML 檔案,以定義 Python 虛擬環境的設定。 下列以 MLflow 專案環境規格為基礎的 YAML 範例會定義具有一些連結庫相依性的基底環境:

    client: "1"
    dependencies:
      - --index-url https://pypi.org/simple
      - -r "/Workspace/Shared/requirements.txt"
      - my-library==6.1
      - "/Workspace/Shared/Path/To/simplejson-3.19.3-py3-none-any.whl"
      - git+https://github.com/databricks/databricks-cli
    
  2. 將 YAML 檔案上傳為工作區檔案或 Unity 目錄磁碟區。 請參閱 匯入檔案將檔案上傳至 Unity 目錄磁碟區

  3. 在筆記本右側,點擊 [環境] 按鈕,展開 [環境] 側邊面板。 只有在筆記本連線到無伺服器計算時,才會顯示此按鈕。

  4. 在 [Base Environment] 字段中,輸入上傳的 YAML 檔案路徑,或流覽至該檔案並加以選取。

  5. 按一下 套用。 這會在筆記本虛擬環境中安裝相依性,並重新啟動 Python 程式。

用戶可以個別安裝相依性,以覆寫基底環境中指定的相依性。

設定筆記本環境

您也可以使用 Environment 側面板,在連接到無伺服器計算的筆記型電腦上安裝依賴項:

  1. 在筆記本右側,點擊 [環境] 按鈕,展開 [環境 側面板]。 只有在筆記本連線到無伺服器計算時,才會顯示此按鈕。
  2. 環境版本 下拉式清單中選取環境版本。 請參閱 無伺服器環境版本。 Databricks 建議挑選最新版本,以取得最多 up-to日期筆記本功能。
  3. 在 [ 相依性] 區段中,按兩下 [新增相 依性],然後在欄位中輸入連結庫相依性的路徑。 您可以指定任何格式的相依性,該格式在requirements.txt檔案中有效。
  4. 按一下 套用。 這會在筆記本虛擬環境中安裝相依性,並重新啟動 Python 程式。

注意

使用無伺服器計算的作業會先安裝筆記本的環境規格,再執行筆記本程序代碼。 這表示將筆記本排程為作業時,不需要新增相依性。 請參閱 設定環境和相依性

檢視已安裝的相依性和 pip 記錄

若要檢視已安裝的相依性,請單擊筆記本 環境 面板中 已安裝。 您可以透過點擊面板底部的 pip logs 來獲得筆記本環境的 pip 安裝紀錄。

重設環境

如果您的筆記本連線到無伺服器計算,Databricks 會自動快取筆記本虛擬環境的內容。 這表示當您開啟現有的筆記本時,通常不需要重新安裝 環境 側面板中指定的 Python 相依性,即使因為閑置而中斷連線也一樣。

Python 虛擬環境快取也適用於作業。 當作業執行時,該作業中任何與已完成任務共用相同依賴集的任務會更快,因為所需的依賴已經可用。

注意

如果您更改在無伺服器架構中作業所使用的自訂 Python 套件的實作方式,您也必須更新其版本號碼,這樣作業才能使用最新的實作。

若要清除環境快取,並重新安裝附加於無伺服器計算的筆記本 環境 側面板中指定的相依性,請按一下 [套用] 旁的箭號,然後按一下 [重設環境]

注意

如果您安裝了會中斷或更改核心 Jupyter 筆記本或 Apache Spark 環境的套件,請重新設定虛擬環境。 將筆記本與無伺服器計算中斷連結,並重新連結它不一定清除整個環境快取。 重設環境會重新安裝 環境 側面板中指定的所有相依性,因此請確定重設之前,會移除違規套件。

設定非筆記本工作的環境和相依性

對於其他支援的工作類型,例如 Python 腳本、Python 滾輪或 dbt 工作,默認環境包含已安裝的 Python 連結庫。 若要查看已安裝的連結庫清單,請參閱您所使用的用戶端版本 已安裝的 Python 連結庫 一節。 請參閱 無伺服器環境版本。 如果工作需要未安裝的 Python 連結庫,您可以從 工作區檔案、Unity 目錄 磁碟區或公用套件存放庫安裝連結庫。 當您建立或編輯工作時,若要新增連結庫:

  1. 在 [環境和連結庫] 下拉功能表中,單擊 編輯圖示 [預設環境] 旁的 ,或按兩下 [+ 新增環境]。

    編輯預設環境

  2. 環境版本 下拉式清單中選取環境版本。 請參閱 無伺服器環境版本。 Databricks 建議挑選最新版本,以取得最多 up-to日期功能。

  3. 在 [設定 環境] 對話框中,按兩下 [ + 新增連結庫]。

  4. 連結庫下的下拉功能表中選取相依性類型。

  5. 在 [ 檔案路徑] 文本框中,輸入連結庫的路徑。

  • 針對工作區檔案中的 Python Wheel,路徑應該是絕對路徑,並以 /Workspace/開頭。

  • 針對 Unity Catalog 磁碟區中的 Python Wheel,路徑應為 /Volumes/<catalog>/<schema>/<volume>/<path>.whl

  • 針對 requirements.txt 檔案,選取 [PyPi],然後輸入 -r /path/to/requirements.txt

    新增工作連結庫

  1. 按兩下 [確認] 或 [+ 新增連結庫] 以新增另一個連結庫。
  2. 如果您要新增任務,請按一下 [建立任務]。 如果您要編輯任務,請按一下 [儲存任務]

設定預設 Python 套件存放庫

系統管理員可以將工作區內的私用或已驗證套件存放庫設定為無伺服器筆記本和無伺服器作業的預設 pip 組態。 這可讓使用者從內部 Python 存放庫安裝套件,而不需要明確定義 index-urlextra-index-url。 不過,如果這些值是在程式碼或筆記本中指定,則會優先於工作區預設值。

此組態會利用 Databricks 秘密 安全地儲存和管理存放庫 URL 和認證。 系統管理員可以使用工作區系統管理員設定頁面,或使用預先定義的秘密範圍和 Databricks CLI 秘密命令來設定安裝程式,REST API

使用工作區管理員設定頁面進行設定

工作區管理員可以使用工作區系統管理員設定頁面來新增或移除預設的 Python 套件存放庫。

  1. 身為工作區系統管理員,登入 Databricks 工作區。
  2. 在 Databricks 工作區頂端工具列中點擊您的使用者名稱,然後選取 設定
  3. 點擊 [計算] 索引標籤。
  4. 預設套件存放庫旁,點擊 [管理]
  5. (選擇性)新增或移除索引 URL、額外的索引 URL 或自定義 SSL 憑證。
  6. 按一下 [儲存] 儲存變更。

注意

將無伺服器計算重新附加至筆記本或重新執行無伺服器作業之後,即會套用對秘密的修改或刪除。

使用秘密 CLI 或 REST API 進行設定

若要使用 CLI 或 REST API 設定預設的 Python 套件存放庫,請建立預先定義的秘密範圍並設定訪問許可權,然後新增套件存放庫秘密。

預先定義的秘密範圍名稱

工作區管理員可以在指定的秘密範圍內,使用預先定義的金鑰,設定預設的 pip 索引 URL 或額外的索引 URL,以及驗證用的令牌和密鑰。

  • 秘密範圍名稱:databricks-package-management
  • index-url 的密鑰:pip-index-url
  • 外部索引 URL 的密鑰:pip-extra-index-urls
  • SSL 認證內容的秘密金鑰:pip-cert

建立機密範圍

您可以使用 Databricks CLI 秘密命令REST API來建立秘密範圍。 建立秘密範圍之後,設定訪問控制清單以授與所有工作區使用者讀取許可權。 這可確保存放庫保持安全,且無法由個別用戶改變。 秘密範圍必須使用預先定義的秘密範圍名稱 databricks-package-management

databricks secrets create-scope databricks-package-management
databricks secrets put-acl databricks-package-management admins MANAGE
databricks secrets put-acl databricks-package-management users READ

新增 Python 套件儲存庫機密資訊

使用預先定義的秘密密鑰名稱新增 Python 套件存放庫詳細數據,這三個字段都是選擇性的。

# Add index URL.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-index-url", "string_value":"<index-url-value>"}'

# Add extra index URLs. If you have multiple extra index URLs, separate them using white space.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-extra-index-urls", "string_value":"<extra-index-url-1 extra-index-url-2>"}'

# Add cert content. If you want to pip configure a custom SSL certificate, put the cert file content here.
databricks secrets put-secret --json '{"scope": "databricks-package-management", "key": "pip-cert", "string_value":"<cert-content>"}'

修改或刪除私人 PyPI 存放庫秘密

若要修改 PyPI 存放庫秘密,請使用 put-secret 命令。 若要刪除 PyPI 存放庫秘密,請使用 delete-secret,如下所示:

# delete secret
databricks secrets delete-secret databricks-package-management pip-index-url

databricks secrets delete-secret databricks-package-management pip-extra-index-urls

databricks secrets delete-secret databricks-package-management pip-cert

# delete scope
databricks secrets delete-scope databricks-package-management