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)

司機節點

使用筆記本範圍的庫可能會導致更多的流量流向驅動程序節點,因為它可以在執行器節點之間保持環境一致。

當您使用有10個或更多節點的集群時,Databricks建議將這些規格作為驅動節點的最低要求:

  • 對於100節點的CPU集群,請使用i3.8xlarge。

  • 10節點GPU集群使用p2.xlarge。

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

安裝筆記本範圍的庫%皮普

重要的

  • 你應該把所有%皮普命令在筆記本的開始。筆記本狀態在任意之後重置%皮普修改環境的命令。如果您在筆記本中創建Python方法或變量,然後使用%皮普命令中的方法或變量將丟失。

  • 升級、修改或卸載核心Python包(如IPython)%皮普可能導致某些功能無法正常工作。例如,IPython 7.21及以上版本與Databricks Runtime 8.1及以下版本不兼容。如果遇到這樣的問題,請通過分離並重新連接筆記本或重新啟動集群來重置環境。

管理庫與%皮普命令

%皮普命令相當於皮普命令,並支持相同的API。以下部分展示了如何使用的示例%皮普命令來管理環境。有關使用。安裝Python包的詳細信息皮普,請參閱pip安裝文檔和相關頁麵。

使用以下命令安裝庫%皮普

皮普安裝matplotlib

安裝車輪包%皮普

皮普安裝/路徑//my_packagewhl

使用以下命令卸載庫%皮普

請注意

中包含的庫無法卸載磚運行時或已安裝為集群圖書館.如果您安裝的庫版本與Databricks Runtime中包含的庫版本或安裝在集群上的庫版本不同,則可以使用%皮普卸載將庫恢複到Databricks運行時中的默認版本或安裝在集群上的版本,但不能使用%皮普命令卸載Databricks Runtime中包含或安裝在集群上的庫的版本。

皮普卸載-ymatplotlib

可能是選項是必需的。

從版本控製係統中安裝庫%皮普

皮普安裝git+https//githubcom//-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

將庫保存在需求文件中

皮普凍結>/dbfs/需求三種

文件路徑中的任何子目錄必須已經存在。如果你運行%皮普凍結>/ dbfs / <新目錄> /讓,如果目錄/ dbfs / <新目錄>並不存在。

使用需求文件安裝庫

一個需求文件包含要使用的安裝包的列表皮普.使用需求文件的一個例子是:

皮普安裝-r/dbfs/需求三種

看到文件格式要求如欲了解更多有關文件。

管理庫與% 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安裝文檔

請注意,% condamagic命令在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

保存並重用或共享環境

當將筆記本從集群中分離時,環境不會被保存。要保存一個環境以便稍後重用它或與他人共享它,請遵循以下步驟。

Databricks建議隻在運行相同版本的Databricks Runtime ML或相同版本的Databricks Runtime for Genomics的集群之間共享環境。

  1. 將環境保存為conda YAML規範。

    condaenv出口-f/dbfs/myenvyml
  2. 將該文件導入到另一個筆記本condaenv更新

    condaenv更新-f/dbfs/myenvyml

列出筆記本電腦的Python環境

要顯示與筆記本相關聯的Python環境,請使用% conda列表

conda列表

之間的相互作用皮普而且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包在所有集群節點上。

dbutilsfs“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.tensorflowhorovod.torch分別。如果發生這種情況,請卸載horovod在確保安裝了依賴項之後,打包並重新安裝它。

  • 在Databricks Runtime 10.3及以下版本上,筆記本範圍的庫與批處理流作業不兼容。磚推薦使用集群庫或者是IPython內核代替。