安裝筆記本相依性
您可以使用 [環境] 側邊面板,為無伺服器筆記本安裝 Python 相依性。 此面板提供單一位置來編輯、檢視及導出筆記本的連結庫需求。 您可以使用基底環境或個別新增這些相依性。
針對非筆記本工作,請參閱 設定非筆記本工作的環境和相依性。
重要
請勿安裝 PySpark 或任何將 PySpark 安裝為無伺服器筆記本相依性的連結庫。 這樣做會停止您的工作階段併產生錯誤。 如果發生這種情況,請 重設您的環境。
設定基底環境
基底環境是儲存為工作區檔案的 YAML 檔案,或儲存在指定其他環境相依性的 Unity 目錄磁碟區上。 基礎環境可以在筆記本之間共用。 若要設定基底環境:
建立 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
在筆記本右側,按下 按鈕以展開 [ 環境] 面板。 只有在筆記本連線到無伺服器計算時,才會顯示此按鈕。
在 [ 基底環境] 字段中,輸入上傳 YAML 檔案的路徑,或流覽至該檔案並加以選取。
按一下 套用。 這會在筆記本虛擬環境中安裝相依性,並重新啟動 Python 程式。
用戶可以個別安裝相依性,以覆寫基底環境中指定的相依性。
設定筆記本環境
您也可以使用 [環境] 面板的 [相依性] 索引標籤,在聯機到無伺服器計算的筆記本上安裝相依性:
- 在筆記本右側,按下 按鈕以展開 [ 環境] 面板。 只有在筆記本連線到無伺服器計算時,才會顯示此按鈕。
- 從 [用戶端版本 ] 下拉式清單中選取用戶端映像。 請參閱 無伺服器用戶端映像。 Databricks 建議挑選最新版本,以取得最新的筆記本功能。
- 在 [ 相依性] 區段中,按兩下 [新增相 依性],然後在欄位中輸入連結庫相依性的路徑。 您可以指定任何格式的相依性,該格式在requirements.txt檔案中有效。
- 按一下 套用。 這會在筆記本虛擬環境中安裝相依性,並重新啟動 Python 程式。
注意
使用無伺服器計算的作業會先安裝筆記本的環境規格,再執行筆記本程序代碼。 這表示將筆記本排程為作業時,不需要新增相依性。 請參閱 設定環境和相依性。
檢視已安裝的相依性和 pip 記錄
若要檢視已安裝的相依性,請按鍵的 [環境] 側邊面板中的 [已安裝]。 您也可以按下 面板底部的 Pip 記錄,取得筆記本環境的 Pip 安裝記錄 。
重設環境
如果您的筆記本連線到無伺服器計算,Databricks 會自動快取筆記本虛擬環境的內容。 這表示當您開啟現有的筆記本時,通常不需要重新安裝 [環境] 面板中指定的 Python 相依性,即使因為閑置而中斷連線也一樣。
Python 虛擬環境快取也適用於作業。 這表示後續的作業執行速度較快,因為已提供所需的相依性。
注意
如果您變更無伺服器作業中使用的自定義 Python 套件實作,您也必須更新其版本號碼,讓作業可以挑選最新的實作。
若要清除環境快取,並執行附加至無伺服器計算之筆記本的 [環境] 面板中所指定的相依性全新安裝,請按兩下 [套用] 旁的箭號,然後按兩下 [重設環境]。
注意
如果您安裝中斷或變更核心筆記本或 Apache Spark 環境的套件,請重設虛擬環境。 將筆記本與無伺服器計算中斷連結,並重新連結它不一定清除整個環境快取。
設定非筆記本工作的環境和相依性
對於其他支援的工作類型,例如 Python 腳本、Python 滾輪或 dbt 工作,默認環境包含已安裝的 Python 連結庫。 若要查看已安裝的連結庫清單,請參閱 您使用之用戶端版本的已安裝 Python 連結庫 一節。 請參閱 無伺服器用戶端映像。 如果工作需要未安裝的 Python 連結庫,您可以從工作區檔案、Unity 目錄磁碟區或公用套件存放庫安裝連結庫。 當您建立或編輯工作時,若要新增連結庫:
在 [環境和連結庫] 下拉功能表中,單擊 [預設環境] 旁的 ,或按兩下 [+ 新增環境]。
從 [用戶端版本 ] 下拉式清單中選取用戶端映像。 請參閱 無伺服器用戶端映像。 Databricks 建議挑選最新版本,以取得最新的功能。
在 [設定 環境] 對話框中,按兩下 [ + 新增連結庫]。
從 [連結庫] 下的下拉功能表中選取相依性類型。
在 [ 檔案路徑] 文本框中,輸入連結庫的路徑。
針對工作區檔案中的 Python Wheel,路徑應該是絕對路徑,並以
/Workspace/
開頭。針對 Unity 目錄磁碟區中的 Python 轉輪,路徑應該是
/Volumes/<catalog>/<schema>/<volume>/<path>.whl
。針對檔案
requirements.txt
,選取 [PyPi],然後輸入-r /path/to/requirements.txt
。
- 按兩下 [確認] 或 [+ 新增連結庫] 以新增另一個連結庫。
- 如果您要新增任務,請按一下 [建立任務]。 如果您要編輯任務,請按一下 [儲存任務]。
設定預設 Python 套件存放庫
重要
這項功能目前位於 公開預覽階段。
系統管理員可以將工作區內的私用或已驗證套件存放庫設定為無伺服器筆記本和無伺服器作業的預設 pip 組態。 這可讓使用者從內部 Python 存放庫安裝套件,而不需要明確定義 index-url
或 extra-index-url
。 不過,如果這些值是在程式碼或筆記本中指定,則會優先於工作區預設值。
此組態會利用 Databricks 秘密 安全地儲存和管理存放庫 URL 和認證。 系統管理員可以使用預先定義的秘密範圍和 Databricks 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來建立秘密範圍。 建立秘密範圍之後,設定 ACL 以授與所有工作區使用者讀取許可權。 這可確保存放庫保持安全,且無法由個別用戶改變。
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
注意
當使用者將無伺服器計算重新附加至其筆記本或重新執行無伺服器作業之後,即會套用對秘密的修改或刪除。