ノートブックスコープのPythonライブラリ
ノートブックスコープのライブラリを使用すると、ノートブック固有のカスタムPython環境を作成、変更、保存、再利用、共有できます。ノートブックスコープのライブラリをインストールした場合、現在のノートブックとそのノートブックに関連付けられたジョブのみがそのライブラリにアクセスできます。同じクラスターに接続されている他のノートブックは影響を受けません。
ノートブックスコープのライブラリはセッションをまたがって保持されません。各セッションの開始時、またはノートブックがクラスターから切り離されるたびに、ノートブックスコープのライブラリを再インストールする必要があります。
Databricks では、 %pip
マジック コマンドを使用して、ノートブック スコープの Python ライブラリをインストールすることをお勧めします。
ジョブとしてスケジュールされたノートブックの %pip
を使用できます。 Scala、SQL、または R ノートブックで Python 環境を管理する必要がある場合は、 %python
マジック コマンドを %pip
と組み合わせて使用します。
ノートブック スコープのライブラリのインストールを操作するときに、ドライバー ノードへのトラフィックが多くなる可能性があります。 「 ノートブック スコープのライブラリを操作する場合のドライバー ノードの大きさ」を参照してください。
クラスターに接続されているすべてのノートブックのライブラリをインストールするには、クラスターライブラリを使用します。 クラスター・ライブラリーを参照してください。
注:
Databricks Runtime 10.4 LTS 以下では、(従来の) Databricks ライブラリ ユーティリティを使用できます。 ライブラリ ユーティリティは Databricks Runtime でのみサポートされ、Databricks Runtime ML ではサポートされません。 ライブラリ ユーティリティ (dbutils.ライブラリ) (レガシー)を参照してください。
%pip
コマンドでライブラリを管理
%pip
コマンドは pip コマンドと同等であり、同じ API をサポートします。この後の各セクションでは、%pip
コマンドを使用して環境を管理する方法の例を紹介します。pip
を使用した Python パッケージのインストールの詳細については、pip install ドキュメントおよび関連ページを参照してください。
重要
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
でライブラリをアンインストールする
注:
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 サポートを参照してください。
%pip
を使用して Databricks シークレットによって管理される資格情報を含むプライベート パッケージをインストールする
Pipは、プライベートバージョン管理システムや Nexus や Artifactory などのプライベートパッケージリポジトリなど、 基本認証 を使用してプライベートソースからのパッケージのインストールをサポートしています。シークレット管理は、認証トークンとパスワードを格納できる Databricks シークレット 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>
%pip
を使用して DBFS からパッケージをインストールする
重要
どのワークスペース ユーザーも 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
ファイルの詳細については、「要件ファイル形式」を参照してください。
ノートブックスコープのライブラリを操作する場合のドライバーノードの大きさはどれくらいですか?
ノートブックスコープのライブラリを使用すると、エグゼキューターノード間で環境の一貫性を保つためにドライバーノードへのトラフィックが増加する可能性があります。
ノード数が 10 以上のクラスターを使用する場合、Databricks はドライバーノードの最小要件として次の仕様を推奨します。
ノード数が 100 の CPU クラスターの場合は、i3.8xlarge を使用します。
ノード数が 10 の GPU クラスターの場合は、p2.xlarge を使用します。
大規模なクラスターの場合は、より大きなドライバーノードを使用します。
%sh pip
、!pip
、またはpip
を使用できますか?また、これらの違いは何ですか?
%sh
ノートブックでシェルコマンドを実行 !
。前者はDatabricks の補助マジックコマンド であり、後者はIPythonの機能です。 pip
は、 自動マジック が有効になっている場合の %pip
の省略形であり、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 カーネルを使用することをお勧めします。