Notebook-scoped Python庫
筆記本範圍的庫允許您創建、修改、保存、重用和共享特定於筆記本的定製Python環境。當安裝筆記本作用域庫時,隻有當前筆記本和與該筆記本關聯的任何作業可以訪問該庫。附加到同一集群的其他筆記本不受影響。
筆記本範圍的庫不會跨會話持久存在。在每個會話開始時,或者在筆記本從集群中分離時,必須重新安裝筆記本作用域庫。
安裝筆記本作用域庫有兩種方法:
運行
%皮普
在筆記本上的魔法命令。Databricks建議對新的工作負載使用這種方法。本文描述如何使用這些神奇的命令。在Databricks Runtime 10.5及以下版本上,可以使用Databricks庫實用程序。該庫實用程序隻支持Databricks Runtime,不支持Databricks Runtime ML或Databricks Runtime for Genomics。看到庫工具(dbutils.library).
若要為附加到集群的所有筆記本安裝庫,請使用工作空間或cluster-installed庫。
重要的
“dbutils.library.install”而且“dbutils.library.installPyPI”在Databricks Runtime 11.0中刪除了api。
需求
使用magic命令的筆記本範圍的庫在Databricks Runtime 7.1及以上版本、Databricks Runtime 7.1 ML及以上版本和Databricks Runtime 7.1 for Genomics及以上版本中默認啟用。
在運行Databricks Runtime 7.4 ML或Databricks Runtime 7.4 for Genomics或以下版本的高並發集群上,筆記本範圍的庫不兼容訪問控製表或憑據透傳.另一種選擇是使用庫工具(dbutils.library)或將您的集群升級到Databricks Runtime 7.5 ML或Databricks Runtime 7.5 for Genomics或以上版本。
使用筆記本範圍的庫磚連接,你必須使用庫工具(dbutils.library).
安裝筆記本範圍的庫%皮普
重要的
你應該把所有
%皮普
命令在筆記本的開始。筆記本狀態在任意之後重置%皮普
修改環境的命令。如果您在筆記本中創建Python方法或變量,然後使用%皮普
命令中的方法或變量將丟失。升級、修改或卸載核心Python包(如IPython)
%皮普
可能導致某些功能無法正常工作。例如,IPython 7.21及以上版本與Databricks Runtime 8.1及以下版本不兼容。如果遇到這樣的問題,請通過分離並重新連接筆記本或重新啟動集群來重置環境。
管理庫與%皮普
命令
的%皮普
命令相當於皮普命令,並支持相同的API。以下部分展示了如何使用的示例%皮普
命令來管理環境。有關使用。安裝Python包的詳細信息皮普
,請參閱pip安裝文檔和相關頁麵。
在本節中:
使用以下命令安裝庫%皮普
%皮普安裝matplotlib
安裝車輪包%皮普
%皮普安裝/路徑/來/my_package.whl
使用以下命令卸載庫%皮普
請注意
中包含的庫無法卸載磚運行時或已安裝為集群圖書館.如果您安裝的庫版本與Databricks Runtime中包含的庫版本或安裝在集群上的庫版本不同,則可以使用%皮普卸載
將庫恢複到Databricks運行時中的默認版本或安裝在集群上的版本,但不能使用%皮普
命令卸載Databricks Runtime中包含或安裝在集群上的庫的版本。
%皮普卸載-ymatplotlib
的可能是
選項是必需的。
從版本控製係統中安裝庫%皮普
%皮普安裝git+https://github.com/磚/磚-cli
你可以在URL中添加參數來指定版本或者git子目錄。看到風險投資支持有關更多信息和使用其他版本控製係統的示例。
安裝由Databricks secrets with管理的憑證的私有包%皮普
Pip支持從私有源安裝包基本身份驗證,包括私有版本控製係統和私有包存儲庫,例如聯係而且Artifactory.可以通過Databricks Secrets API進行秘密管理,該API允許您存儲身份驗證令牌和密碼。使用DBUtils API從你的筆記本上獲取秘密。注意,您可以使用$變量
在神奇的命令。
要從私有存儲庫安裝包,請使用——index-url
選項%皮普安裝
或者加到皮普
配置文件在~ / .pip / pip.conf
.
令牌=dbutils.秘密.得到(範圍=“範圍”,關鍵=“關鍵”)
%pip install——index-url https://:美元的令牌@ < your-package-repository > .com/ <路徑/ /回購> <包>= =<版本>——extra-index-url https://pypi.org/simple/
類似地,您可以使用帶有魔法命令的秘密管理從版本控製係統安裝私有包。
令牌=dbutils.秘密.得到(範圍=“範圍”,關鍵=“關鍵”)
% pip安裝git + https:// <用戶名>:美元的令牌@ < gitprovider > .com/回購> <路徑/ /
從DBFS中安裝一個包%皮普
您可以使用%皮普
安裝一個保存在DBFS上的私有包。
當你上傳一個文件到DBFS時,它會自動重命名文件,用下劃線替換空格、句點和連字符。對於輪文件,皮普
要求版本中文件使用周期的名稱(例如,0.1.0)和連字符而不是空格或下劃線,因此這些文件名不會被更改。
%皮普安裝/dbfs/mypackage-0.0.1-py3-沒有一個-任何.whl
管理庫與% conda
命令
重要的
% conda
命令已棄用,在Databricks Runtime ML 8.4之後將不再支持。磚推薦使用%皮普
用於管理筆記本範圍的庫。如果您需要隻能使用conda安裝的Python庫,則可以使用conda-basedDocker容器預安裝所需的庫。
蟒蛇公司更新了他們的服務條款觀看anaconda.org頻道。根據新的服務條款,如果您依賴Anaconda的包裝和分銷,您可能需要一個商業許可證。看到蟒蛇商業版常見問題解答為更多的信息。你對蟒蛇通道的使用由他們的服務條款.
由於這個更改,Databricks刪除了Conda包管理器的默認通道配置。這是一個突破性的變化。
來安裝或更新包% conda
命令時,必須指定使用的通道- c
.的所有用法也必須更新% conda安裝
而且% shconda安裝
指定使用的通道- c
.如果不指定通道,conda命令將失敗PackagesNotFoundError
.
的% conda
命令相當於conda命令,並支持相同的API,但有如下所示的一些限製。以下部分包含如何使用的示例% conda
命令來管理環境。有關使用。安裝Python包的詳細信息conda
,請參閱conda安裝文檔.
請注意,% conda
magic命令在Databricks運行時不可用。它們隻在Databricks Runtime ML到Databricks Runtime ML 8.4版本和Databricks Runtime for Genomics版本上可用。磚推薦使用皮普
安裝庫。有關更多信息,請參見理解康達和皮普.
如果你必須兩者都用%皮普
而且% conda
在筆記本上的命令,見pip和conda命令之間的交互.
請注意
以下conda
與時不支持命令% conda
:
激活
創建
初始化
運行
env創建
env刪除
使用以下命令安裝庫% conda
%conda安裝matplotlib-cconda-打造
使用以下命令卸載庫% conda
%conda卸載matplotlib
之間的相互作用皮普
而且conda
命令
為了避免衝突,在使用時遵循這些指導方針皮普
或conda
安裝Python包和庫。
使用API或者使用集群的用戶界麵安裝使用
皮普
.如果已經從API或集群UI安裝了任何庫,那麼應該隻使用%皮普
在安裝筆記本作用域的庫時。如果在集群上使用筆記本範圍的庫,在該集群上運行的初始化腳本可以使用任何一種庫
conda
或皮普
用於安裝庫的命令。但是,如果初始化腳本包含皮普
命令,隻使用%皮普
筆記本中的命令(不是% conda
).最好兩者都用
皮普
命令完全或conda
專門的命令。如果您必須安裝一些軟件包使用conda
和一些使用皮普
,運行conda
命令,然後運行皮普
命令。有關更多信息,請參見在Conda環境中使用Pip.
常見問題(FAQ)
從集群UI/API安裝的庫如何與筆記本範圍的庫交互?
從集群UI或API安裝的庫可用於集群上的所有筆記本。這些庫是使用皮普
;因此,如果庫是使用集群UI安裝的,隻使用%皮普
在筆記本電腦的命令。
使用初始化腳本安裝的庫如何與筆記本範圍的庫交互?
使用初始化腳本安裝的庫可用於集群上的所有筆記本。
如果在運行Databricks Runtime ML或Databricks Runtime for Genomics的集群上使用筆記本範圍的庫,則在集群上運行的初始化腳本可以使用其中任何一種conda
或皮普
用於安裝庫的命令。但是,如果初始化腳本包含皮普
命令,然後隻使用%皮普
在筆記本電腦的命令。
例如,這個筆記本代碼片段生成一個快速安裝的腳本。Ai包在所有集群節點上。
dbutils.fs.把(“dbfs: / home / myScripts / fast.ai”,conda install -c pytorch -c fastai fastai -y,真正的)
我可以用% sh皮普
或!皮普
?
% sh
而且!
在筆記本上執行shell命令;前者是Databricks輔助魔法命令而後者是IPython的一個特性。Databricks不建議使用% sh皮普
或!皮普
因為他們不兼容%皮普
使用。
請注意
在Databricks Runtime 11.0及以上版本,%皮普
,% sh皮普
,!皮普
都安裝一個庫作為筆記本範圍的Python庫。
已知的問題
在Databricks Runtime 7.0 ML及以下版本以及Databricks Runtime 7.0 for Genomics及以下版本上,如果注冊的UDF依賴於使用
%皮普
或% conda
這是不合適的%的sql
細胞。使用spark.sql
在Python命令shell中。在Databricks Runtime 7.2 ML及以下版本以及Databricks Runtime 7.2 for Genomics及以下版本上,當您更新筆記本環境時使用
% conda
,新環境不會在工作Python進程上激活。如果PySpark UDF函數調用使用Conda環境中安裝的資源的第三方函數,這可能會導致問題。當你使用
% condaenv更新
要更新筆記本環境,不能保證包的安裝順序。這可能會導致問題horovod
軟件包,這需要tensorflow
而且火炬
被安裝在horovod
為了使用horovod.tensorflow
或horovod.torch
分別。如果發生這種情況,請卸載horovod
在確保安裝了依賴項之後,打包並重新安裝它。在Databricks Runtime 10.3及以下版本上,筆記本範圍的庫與批處理流作業不兼容。磚推薦使用集群庫或者是IPython內核代替。