ノートブック スコープの Python ライブラリ
ノートブックスコープのライブラリを使用すると、ノートブック固有のカスタムPython環境を作成、変更、保存、再利用、共有できます。ノートブックスコープのライブラリをインストールした場合、現在のノートブックとそのノートブックに関連付けられたジョブのみがそのライブラリにアクセスできます。同じクラスターに接続されている他のノートブックは影響を受けません。
ノートブックスコープのライブラリはセッションをまたがって保持されません。各セッションの開始時、またはノートブックがクラスターから切り離されるたびに、ノートブックスコープのライブラリを再インストールする必要があります。
Databricks では、 %pip
マジック コマンドを使用して、ノートブック スコープの Python ライブラリをインストールすることをお勧めします。
ジョブとしてスケジュールされたノートブックで %pip
を使用できます。 Python 環境を Scala、SQL、または R ノートブックで管理する必要がある場合は、 %python
magic コマンドを %pip
と組み合わせて使用 します。
ノートブック スコープのライブラリのインストールを操作すると、ドライバー ノードへのトラフィックが増える可能性があります。 「ノートブック スコープのライブラリを操作する場合、ドライバー ノードはどのくらいの大きさにする必要がありますか?」を参照してください。
クラスターにアタッチされているすべてのノートブックにライブラリをインストールするには、クラスター ライブラリを使用します。 クラスター ライブラリを参照してください。
Databricks に Python ライブラリをインストールするために使用できるオプションの包括的な概要については、「 Python 環境の管理」を参照してください。
Databricks Runtime 10.4 LTS 以下では、(レガシ) Databricks ライブラリ ユーティリティを使用できます。 ライブラリ ユーティリティは Databricks Runtime でのみサポートされ、Databricks Runtime ML ではサポートされていません。 ライブラリ ユーティリティ (dbutils.ライブラリ) (legacy)を参照してください。
%pip
コマンドによるライブラリの管理
%pip
コマンドは pip コマンドと同等で、同じ API をサポートします。次のセクションでは、 %pip
コマンドを使用して環境を管理する方法の例を示します。 pip
を使用した Python パッケージのインストールの詳細については、 pip インストールのドキュメント と関連ページを参照してください。
- Databricks Runtime 13.0 以降では、
%pip
コマンドは Python プロセスを自動的に再起動しません。 新しいパッケージをインストールする場合、または既存のパッケージを更新する場合は、新しいパッケージを表示するためにdbutils.library.restartPython()
を使用する必要がある場合があります。 「Databricks で Python プロセスを再起動する」を参照してください。 - Databricks Runtime 12.2 LTS 以前について、Databricks ではすべての
%pip
コマンドをノートブックの先頭に配置することをお勧めします。ノートブックの状態は、環境を変更する%pip
コマンドの後にリセットされます。ノートブックで Python メソッドまたは変数を作成し、その後のセルで%pip
コマンドを使用すると、メソッドまたは変数は失われます。 - コア Python パッケージ(IPythonなど)を
%pip
でアップグレード、変更、またはアンインストールすると、一部の機能が想定どおりに動作しなくなる可能性があります。このような問題が発生した場合は、ノートブックを取り外してから取り付け直すか、クラスターを再起動して、環境をリセットしてください。
ライブラリのインストール %pip
%pip install matplotlib
Python wheelパッケージを次のようにインストールします。 %pip
%pip install /path/to/my_package.whl
ライブラリのアンインストール %pip
Databricks Runtimeリリースノートのバージョンと互換性 に含まれているライブラリ またはクラスター ライブラリ としてインストールされているライブラリはアンインストールできません。Databricks Runtime に含まれているライブラリ バージョンまたはクラスタにインストールされているライブラリ バージョンとは異なるライブラリ バージョンをインストールした場合は、%pip uninstall
を使用してライブラリを Databricks Runtime のデフォルト バージョンまたはクラスタにインストールされているバージョンに戻すことができますが、%pip
コマンドを使用して、Databricks Runtime に含まれているライブラリまたはクラスタにインストールされているライブラリのバージョンをアンインストールすることはできません。
%pip uninstall -y matplotlib
-y
オプションは必須です。
バージョン管理システムからライブラリをインストールするには、 %pip
%pip install git+https://github.com/databricks/databricks-cli
URL にパラメータを追加すると、バージョンや git サブディレクトリなどを指定できます。詳細や他のバージョン管理システムの使用例については、VCS サポートを参照してください。
Databricks シークレットによって管理される資格情報を使用してプライベート パッケージをインストールします。 %pip
pip は、プライベートバージョン管理システムやNexusやArtifactory などのプライベートパッケージリポジトリなど、 基本認証 を使用したプライベートソースからのパッケージのインストールをサポートします。シークレット管理は、Databricks Secrets API を介して利用でき、認証トークンとパスワードを保存できます。 DBUtils API を使用して、ノートブックからシークレットにアクセスします。マジックコマンドで $variables
を使用できることに注意してください。
プライベートリポジトリからパッケージをインストールするには、--index-url
オプションを使用してリポジトリ URL を %pip install
に指定するか、~/.pip/pip.conf
にある pip
構成ファイルに追加します。
token = dbutils.secrets.get(scope="scope", key="key")
%pip install --index-url https://<user>:$token@<your-package-repository>.com/<path/to/repo> <package>==<version> --extra-index-url https://pypi.org/simple/
同様に、マジックコマンドによるシークレット管理を使用すると、バージョン管理システムからプライベートパッケージをインストールできます。
token = dbutils.secrets.get(scope="scope", key="key")
%pip install git+https://<user>:$token@<gitprovider>.com/<path/to/repo>
DBFS からパッケージをインストールするには、次のようにします。 %pip
すべてのワークスペース ユーザーは、DBFS に格納されているファイルを変更できます。 Databricks では、ワークスペースまたは Unity Catalog ボリュームにファイルを格納することをお勧めします。
%pip
を使用すると、DBFSに保存されているプライベートパッケージをインストールできます。
DBFS にファイルをアップロードすると、スペース、ピリオド、ハイフンがアンダースコアに置き換えられて、ファイルの名前が自動的に変更されます。 Python wheelファイルの場合、pip
では、ファイル名にバージョンのピリオド (0.1.0 など) を使用する必要がありますまた、スペースやアンダースコアの代わりにハイフンを使用するため、これらのファイル名は変更されません。
%pip install /dbfs/mypackage-0.0.1-py3-none-any.whl
ボリュームからパッケージをインストールするには、 %pip
プレビュー
この機能は パブリック プレビュー段階です。
Databricks Runtime 13.3 LTS 以降では、 %pip
を使用して、ボリュームに保存されたプライベート パッケージをインストールできます。
ボリュームにファイルをアップロードすると、スペース、ピリオド、ハイフンがアンダースコアに置き換えられ、ファイルの名前が自動的に変更されます。 Python wheelファイルの場合、pip
では、ファイル名にバージョンのピリオド (0.1.0 など) を使用する必要がありますまた、スペースやアンダースコアの代わりにハイフンを使用するため、これらのファイル名は変更されません。
%pip install /Volumes/<catalog>/<schema>/<path-to-library>/mypackage-0.0.1-py3-none-any.whl
ワークスペースファイルとして保存されているパッケージを次のようにインストールします。 %pip
Databricks Runtime 11.3 LTS 以降では、 %pip
を使用して、ワークスペース ファイルとして保存されているプライベート パッケージをインストールできます。
%pip install /Workspace/<path-to-whl-file>/mypackage-0.0.1-py3-none-any.whl
要件ファイルへのライブラリの保存
%pip freeze > /Workspace/shared/prod_requirements.txt
ファイルパスにサブディレクトリがすでに存在している必要があります。%pip freeze > /Workspace/<new-directory>/requirements.txt
を実行する場合、ディレクトリ/Workspace/<new-directory>
が存在していないと、コマンドは失敗します。
要件ファイルを使用してライブラリをインストールする
要件ファイルには、pip
を使用してインストールするパッケージのリストが含まれています。要件ファイルの使用例を次に示します。
%pip install -r /Workspace/shared/prod_requirements.txt
requirements.txt
ファイルの詳細については、「Requirements File Format」を参照してください。
ノートブック スコープのライブラリを操作する場合、ドライバー ノードはどのくらいの大きさにする必要がありますか?
ノートブックスコープのライブラリを使用すると、エグゼキューターノード間で環境の一貫性を保つためにドライバーノードへのトラフィックが増加する可能性があります。
100 以上のノードでクラスターを使用する場合、ドライバーノードの最小要件はインスタンスタイプ c3-standard-22-lssd
です。
大規模なクラスターの場合は、より大きなドライバーノードを使用します。
%sh pip
、!pip
、pip
は使えますか?違いは何ですか?
%sh
ノートブックでシェルコマンドを実行する !
。前者はDatabricks の補助魔法コマンド であり、後者はIPythonの機能です。 pip
は、%pip
が有効になっている場合の省略形であり、 これは automagic の default Databricks Python ノートブックです。
Databricks Runtime 11.3 LTS 以降では、 %pip
、 %sh pip
、 !pip
はすべて、ノートブック スコープの Python ライブラリとしてライブラリをインストールします。 Databricks Runtime 10.4 LTS以下では、Databricks %pip
または pip
のみを使用してノートブックスコープのライブラリをインストールすることをお勧めします。%sh pip
と !pip
の動作は、Databricks Runtime 10.4 LTS 以下では一貫していません。
既知の問題
- Databricks Runtime 9.1 LTS では、ノートブック スコープのライブラリはバッチ ストリーミング ジョブと互換性がありません。 Databricks は、 代わりにクラスター ライブラリ または IPython カーネル を使用することをお勧めします。