ライブラリ ユーティリティ (dbutils.ライブラリ) (レガシー)
dbutils.library.install
とdbutils.library.installPyPI
APIs は Databricks Runtime 11.0 以降で削除されています。 ほとんどのライブラリユーティリティコマンドは非推奨です。 ほとんどのライブラリ ユーティリティは、Databricks Runtime ML では使用できません。 に関する情報については、「dbutils.library.restartPython
Pythonでの プロセスの再起動Databricks 」を参照してください。
このドキュメントは廃止されており、更新されない可能性があります。 このコンテンツに記載されている製品、サービス、またはテクノロジはサポートされなくなりました。
Databricks では、 %pip
マジック コマンドを使用してノートブック スコープのライブラリをインストールすることを強くお勧めします。 ノートブック スコープの Python ライブラリを参照してください。
Databricks ユーティリティ機能の完全なドキュメントについては、「Databricks ユーティリティ (dbutils
) リファレンス」を参照してください。
コマンド : install, installPyPI, list, restartPython), updateCondaEnv
ライブラリ ユーティリティを使用すると、 Python ライブラリをインストールし、ノートブック セッションをスコープとする環境を作成できます。 ライブラリはドライバーとエグゼキューターの両方で使用できるため、ユーザー定義関数で参照できます。 これにより、次のことが可能になります。
- ノートブック自体の内部に整理されるノートブックのライブラリ依存関係。
- 異なるライブラリの依存関係を持つノートブックユーザーは、干渉なしにクラスターを共有します。
ノートブックをデタッチすると、この環境が破壊されます。 ただし、ノートブックでライブラリ コマンド install
API コマンドを再実行することで再作成できます。 環境を失わずにノートブックの状態をリセットする方法については、 restartPython
API を参照してください。
ライブラリ ユーティリティはデフォルトで有効になっています。 したがって、デフォルト では、各ノートブックのPython環境は、ノートブックがクラスター上のデフォルト Python 環境に接続され、継承されるときに作成される個別の Python実行可能ファイルを使用して分離されます。initスクリプトを介してDatabricks Python環境にインストールされたライブラリは、引き続き利用可能です。この機能を無効にするには、 spark.databricks.libraryIsolation.enabled
を false
に設定します。
このAPIは、UI および ライブラリ の APIを通じて、既存のクラスター全体のライブラリ インストールと互換性があります。この API を通じてインストールされたライブラリは、クラスター全体のライブラリよりも 優先度が高くなります 。
使用可能なコマンドを一覧表示するには、dbutils.library.help()
を実行します。
install(path: String): boolean -> Install the library within the current notebook session
installPyPI(pypiPackage: String, version: String = "", repo: String = "", extras: String = ""): boolean -> Install the PyPI library within the current notebook session
list: List -> List the isolated libraries added for the current notebook session via dbutils
restartPython: void -> Restart python process for the current notebook session
updateCondaEnv(envYmlContent: String): boolean -> Update the current notebook's Conda environment based on the specification (content of environment
install コマンド (dbutils.ライブラリ.install)
ライブラリへのパスを指定すると、そのライブラリを現在のノートブック・セッション内にインストールします。 このコマンドを呼び出してインストールされたライブラリは、現在のノートブックでのみ使用できます。
このコマンドのヘルプを表示するには、dbutils.library.help("install")
を実行します。
この例では、ノートブック内に .egg
ライブラリまたは .whl
ライブラリをインストールします。
dbutils.library.install
は、Databricks Runtime 11.0 以降で削除されます。
Databricks では、すべてのライブラリ インストール コマンドをノートブックの最初のセルに配置し、そのセルの末尾で restartPython
を呼び出すことをお勧めします。 Python ノートブックの状態は、 restartPython
; の実行後にリセットされます。ノートブックは、ローカル変数、インポートされたライブラリ、その他の一時的な状態を含むがこれらに限定されないすべての状態を失います。 そのため、ライブラリをインストールし、 最初の ノートブック セルでノートブックの状態をリセットすることをお勧めします。
受け入れられるライブラリのソースは dbfs
と s3
です。
dbutils.library.install("dbfs:/path/to/your/library.egg")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.
dbutils.library.install("dbfs:/path/to/your/library.whl")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.
カスタムホイールファイルを直接インストールできます %pip
. 次の例では、ライブラリのホイール ファイルを DBFS にアップロードしたと仮定しています。
%pip install /dbfs/path/to/your/library.whl
egg ファイルは pip でサポートされておらず、wheel ファイルは Python のビルドおよびバイナリ パッケージ化の標準と見なされています。 ただし、 %pip
と互換性のある方法でeggファイルを使用する場合は、次の回避策を使用できます。
# This step is only needed if no %pip commands have been run yet.
# It will trigger setting up the isolated notebook environment
%pip install <any-lib> # This doesn't need to be a real library; for example "%pip install any-lib" would work
import sys
# Assuming the preceding step was completed, the following command
# adds the egg file to the current notebook environment
sys.path.append("/local/path/to/library.egg")
installPyPI コマンド (dbutils.ライブラリ.installPyPI)
Python Package Index (PyPI) パッケージを指定して、そのパッケージを現在のノートブック セッションにインストールします。 このコマンドを呼び出してインストールされたライブラリは、ノートブック間で分離されます。
このコマンドのヘルプを表示するには、dbutils.library.help("installPyPI")
を実行します。
この例では、ノートブックに PyPI パッケージをインストールします。 version
、 repo
、および extras
はオプションです。 extras
引数を使用して、エクストラ機能を指定します (追加要件)。
dbutils.library.installPyPI("pypipackage", version="version", repo="repo", extras="extras")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.
dbutils.library.installPyPI
は、Databricks Runtime 11.0 以降で削除されます。
version
キーと extras
キーは PyPI パッケージ文字列の一部にすることはできません。例: dbutils.library.installPyPI("azureml-sdk[databricks]==1.19.0")
は無効です。 version
引数と extras
引数を使用して、次のようにバージョンとエクストラの情報を指定します。
dbutils.library.installPyPI("azureml-sdk", version="1.19.0", extras="databricks")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.
dbutils.library.installPyPI
コマンドを%pip
コマンドに置き換えると、Pythonインタプリタは自動的に再起動されます。install コマンドは、次のように実行できます。
%pip install azureml-sdk[databricks]==1.19.0
この例では、1 つのノートブックでライブラリ要件を指定し、もう 1 つのノートブックで %run
を使用してインストールします。 これを行うには、まずノートブックにインストールするライブラリを定義します。 この例では、 InstallDependencies
という名前のノートブックを使用します。
dbutils.library.installPyPI("torch")
dbutils.library.installPyPI("scikit-learn", version="1.19.1")
dbutils.library.installPyPI("azureml-sdk", extras="databricks")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.
次に、それらの依存関係が必要なノートブックにインストールします。
%run /path/to/InstallDependencies # Install the dependencies in the first cell.
import torch
from sklearn.linear_model import LinearRegression
import azureml
...
この例では、環境を維持しながら Python ノートブックの状態をリセットします。 この手法は、Python ノートブックでのみ使用できます。 たとえば、次の手法を使用して、異なるバージョンでプレインストールされているライブラリ Databricks を再読み込みできます。
dbutils.library.installPyPI("numpy", version="1.15.4")
dbutils.library.restartPython()
# Make sure you start using the library in another cell.
import numpy
この手法を使用して、プロセスの起動時にロードする必要がある tensorflow などのライブラリをインストールすることもできます。
dbutils.library.installPyPI("tensorflow")
dbutils.library.restartPython()
# Use the library in another cell.
import tensorflow
list コマンド (dbutils.ライブラリ.list)
ライブラリ ユーティリティを通じて現在のノートブック セッションに追加された分離ライブラリが一覧表示されます。 これには、クラスターにアタッチされているライブラリは含まれません。
このコマンドのヘルプを表示するには、dbutils.library.help("list")
を実行します。
この例では、ノートブックにインストールされているライブラリを一覧表示します。
dbutils.library.list()
このコマンドを %pip
使用するのと同等のものは次のとおりです。
%pip freeze
updateCondaEnv コマンド (dbutils.ライブラリ.updateCondaEnv)
現在のノートブックの Conda 環境を environment.yml
の内容に基づいて更新します。 このメソッドは、Conda 上の Databricks Runtime でのみサポートされています。
このコマンドのヘルプを表示するには、dbutils.library.help("updateCondaEnv")
を実行します。
この例では、指定された仕様の内容に基づいて、現在のノートブックの Conda 環境を更新します。
dbutils.library.updateCondaEnv(
"""
channels:
- anaconda
dependencies:
- gensim=3.4
- nltk=3.4
""")