ノートブックスコープの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でライブラリをインストールする

%pip install matplotlib

%pipを含む Python wheel パッケージをインストールする

%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 サポートを参照してください。

%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 カーネルを使用することをお勧めします。