Share via


ライブラリ ユーティリティ (dbutils.library) (レガシ)

Note

dbutils.library.install および dbutils.library.installPyPI API は、Databricks Runtime 11.0 以上で削除されました。 大半のライブラリ ユーティリティ コマンドは非推奨です。 大半のライブラリ ユーティリティは、Databricks Runtime ML では使用できません。 dbutils.library.restartPython の詳細については、「Azure Databricks で Python プロセスを再起動する」を参照してください。

このドキュメントは廃止され、更新されない可能性があります。 このコンテンツで言及されている製品、サービス、テクノロジは、サポートされなくなりました。

Databricks では %pip マジック コマンドを使用して、ノートブックスコープのライブラリをインストールすることを強くお勧めします。 「ノートブック スコープの Python ライブラリ」を参照してください。

Databricks ユーティリティ機能の完全なドキュメントについては、「Databricks Utilities (dbutils) リファレンス」を参照してください。

コマンド: installinstallPyPIlistrestartPythonupdateCondaEnv

library ユーティリティを使用すると、Python ライブラリをインストールし、ノートブック セッションにスコープを設定した環境を作成できます。 ライブラリは、ドライバーと実行プログラムの両方で使用できるため、ユーザー定義関数で参照できます。 これにより、次のことを実現できます。

  • ノートブックのライブラリ依存関係を、ノートブック自体内で編成する。
  • ライブラリ依存関係が異なるノートブックのユーザーが、干渉なしでクラスターを共有する。

ノートブックをデタッチすると、この環境が破棄されます。 ただし、ノートブックでライブラリの install API コマンドを再実行すると、これを再作成できます。 環境を失わずにノートブックの状態をリセットする方法については、restartPython API を参照してください。

library ユーティリティは、既定で有効になっています。 したがって、既定では、各ノートブックの Python 環境は、ノートブックがクラスターの既定の Python 環境にアタッチされ、その環境を継承するときに作成される個別の Python 実行可能ファイルを使用して分離されます。 初期化スクリプトを介して Azure Databricks Python 環境にインストールされるライブラリは、引き続き使用できます。 この機能を無効にするには、spark.databricks.libraryIsolation.enabledfalse に設定します。

この API は、UI および Libraries 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.library.install)

ライブラリへのパスが指定された場合に、そのライブラリを現在のノートブック セッション内にインストールします。 このコマンドを呼び出すことでインストールされるライブラリは、現在のノートブックでのみ使用できます。

このコマンドのヘルプを表示するには、dbutils.library.help("install") を実行します。

この例では、ノートブック内に .egg または .whl ライブラリをインストールします。

重要

dbutils.library.install は、Databricks Runtime 11.0 以上では削除されます。

Databricks では、ライブラリのすべての install コマンドをノートブックの最初のセルに配置し、そのセルの末尾で restartPython を呼び出すことを推奨しています。 Python ノートブックの状態は、restartPython を実行した後にリセットされます。これにより、ノートブックでは、ローカル変数、インポートされたライブラリ、その他の一時的な状態など、すべての状態が失われます。 そのため、"最初" のノートブック セルで、ライブラリをインストールし、ノートブックの状態をリセットすることをお勧めします。

受け入れられるライブラリ リソースは、dbfsabfssadlwasbs です。

dbutils.library.install("abfss:/path/to/your/library.egg")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.
dbutils.library.install("abfss:/path/to/your/library.whl")
dbutils.library.restartPython() # Removes Python state, but some libraries might not work without calling this command.

注意

%pip を使用して、カスタム wheel ファイルを直接インストールできます。 次の例は、DBFS にライブラリ wheel ファイルがアップロードされていることを前提としています。

%pip install /dbfs/path/to/your/library.whl

egg ファイルは pip でサポートされておらず、ホイール ファイルが 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.library.installPyPI)

Python Package Index (PyPI) パッケージが指定された場合に、そのパッケージを現在のノートブック セッション内にインストールします。 このコマンドを呼び出すことでインストールされるライブラリは、ノートブック間で分離されます。

このコマンドのヘルプを表示するには、dbutils.library.help("installPyPI") を実行します。

この例では、ノートブック内に PyPI パッケージをインストールします。 versionrepoextras は省略可能です。 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

この例では、一方のノートブックでライブラリ要件を指定し、他方のノートブックで %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 ノートブックでのみ使用できます。 たとえば、この手法を使用して、Azure 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.library.list)

library ユーティリティを介して現在のノートブック セッションに追加された分離ライブラリを一覧表示します。 これには、クラスターにアタッチされたライブラリは含まれません。

このコマンドのヘルプを表示するには、dbutils.library.help("list") を実行します。

この例では、ノートブックにインストールされているライブラリを一覧表示します。

dbutils.library.list()

注意

以下は、%pip を使用した、このコマンドと同等のコマンドです。

%pip freeze

updateCondaEnv コマンド (dbutils.library.updateCondaEnv)

environment.yml の内容に基づいて、現在のノートブックの Conda 環境を更新します。 このメソッドは、Conda での Databricks Runtime でのみサポートされています。

このコマンドのヘルプを表示するには、dbutils.library.help("updateCondaEnv") を実行します。

この例では、指定した仕様の内容に基づいて、現在のノートブックの Conda 環境を更新します。

dbutils.library.updateCondaEnv(
"""
channels:
  - anaconda
dependencies:
  - gensim=3.4
  - nltk=3.4
""")