ライブラリ

クラスター上で実行されているノートブックやジョブでサードパーティ コードまたはカスタム コードを使用できるようにするには、ライブラリをインストールします。 ライブラリは、Python、Java、Scala、R で作成できます。 Python、Java、および Scala ライブラリをアップロードし、PyPI、Maven、および CRAN リポジトリ内の外部パッケージを指定できます。

Databricks Runtime には多くの共通ライブラリが含まれています。Databricks Runtime に含まれるライブラリを確認するには、ご利用の Databricks Runtime バージョンの Databricks Runtime のリリースノートシステム環境 サブセクションを参照してください。

クラスタースコープのライブラリ

クラスターにライブラリをインストールすると、クラスター上で実行されているすべてのノートブックとジョブでライブラリを使用できるようになります。 Databricks は、Python、JAR、および R ライブラリをサポートしています。 「クラスター ライブラリ」を参照してください。

クラスターライブラリは、次のソースから直接インストールできます。

すべてのタイプのライブラリまたはすべてのコンピュート構成ですべての場所がサポートされているわけではありません。 構成の推奨事項については、「ライブラリをアップロードするための推奨事項」を参照してください。

重要

Databricks Runtime 14.3 LTS 以下を使用する場合、ライブラリは DBFS からインストールできます。 ただし、ワークスペース ユーザーは、DBFS に格納されているライブラリ ファイルを変更できます。 Databricks ワークスペース内のライブラリのセキュリティを向上させるため、DBFS ルートへのライブラリ ファイルの保存は非推奨となり、Databricks Runtime 15.0 以降ではデフォルトで無効になっています。 「DBFS ルートへのライブラリの保存は非推奨であり、デフォルトで無効になっている」を参照してください。

代わりに、Databricks Unity Catalogではライブラリをワークスペース ファイルまたは ボリュームにアップロードするか、ライブラリ パッケージ リポジトリを使用すること をお勧めします 。ワークロードがこれらのパターンをサポートしていない場合は、クラウド オブジェクト ストレージに保存されているライブラリを使用することもできます。

完全なライブラリ サポート情報については、 「Python ライブラリ サポート」「Java および Scala ライブラリ サポート」、 「R ライブラリ サポート」を参照してください。

ライブラリのアップロードに関する推奨事項

Databricks は、Python、JAR、R ライブラリのほとんどの構成インストールをサポートしていますが、サポートされていないシナリオもいくつかあります。 共有アクセス モードはすべてのワークロードに推奨されるモードであるため、共有アクセス モードでのコンピュートへのインストールをサポートするソースの場所にライブラリをアップロードすることをお勧めします。 アクセス・モードを参照してください。共有アクセス モードでワークフローをスケジュールする場合は、サービス プリンシパルを使用してワークフローを実行します。

重要

必要な機能が共有アクセス モードでサポートされていない場合は、シングル ユーザー アクセス モードでのみコンピュートを使用してください。 非分離共有アクセス モードは Databricks のレガシー構成であり、推奨されません。

次の表に、 Databricks RuntimeバージョンとUnity Catalog有効化ごとにまとめた推奨事項を示します。

構成

推奨事項

Databricks Runtime 13.3 LTS 以降とUnity Catalog

すべてのアカウント ユーザーに対して GRANT READ を使用して、 ボリューム から 共有アクセス モード でライブラリをコンピュートにインストールします。Unity Catalog

該当する場合は、Maven 座標と JAR ライブラリのパスを許可リストに追加する必要があります。

Databricks Runtime 11.3 LTS 以降 ( Unity Catalogなし)

ワークスペース ファイルからライブラリをインストールします。 (ファイルサイズの上限は500MBです。

Databricks Runtime 10.4 LTS 以下

クラウド オブジェクト ストレージからライブラリをインストールします。

Python ライブラリのサポート

Databricks RuntimePython wheel次の表は、ライブラリ ソースの場所に基づいた、さまざまなクラスター アクセス モードでの ファイルの バージョンの互換性を示しています。Databricks Runtimeリリース ノートのバージョンと互換性」および「アクセス モード」を参照してください。

Databricks Runtime 15.0 以降では、 requirements.txt ファイルを使用して Python の依存関係を管理できます。 これらのファイルは、サポートされているソースの場所にアップロードできます。

注:

Python の Egg ファイルのインストールは、Databricks Runtime 14.0 以降ではサポートされていません。 代わりにPython wheelファイルを使用するか、 PyPIからパッケージをインストールしてください。

共有アクセスモード

シングル・ユーザー・アクセス・モード

分離なしの共有アクセス モード (レガシ)

PyPI

LTS以上

サポートされているすべてのDatabricks Runtimeバージョン

サポートされているすべてのDatabricks Runtimeバージョン

ワークスペースファイル

LTS以上

LTS以上

14.1以上

ボリューム

LTS以上

LTS以上

サポートされていない

クラウドストレージ

LTS以上

サポートされているすべてのDatabricks Runtimeバージョン

サポートされているすべてのDatabricks Runtimeバージョン

DBFS (推奨されません)

サポートされていない

14.3 以下

14.3 以下

Java および Scala ライブラリのサポート

次の表は、ライブラリ ソースの場所に基づいた、さまざまなクラスター アクセス モードでの JAR ファイルのDatabricks Runtimeバージョンの互換性を示しています。 「Databricks Runtime リリース ノートのバージョンと互換性」および「アクセス モード」を参照してください。

注:

共有アクセス モードでは、管理者が JAR ライブラリの Maven 座標とパスをallowlistに追加する必要があります。 共有コンピュートの許可リスト ライブラリと init スクリプトを参照してください。

共有アクセスモード

シングル・ユーザー・アクセス・モード

分離なしの共有アクセス モード (レガシ)

Maven

LTS以上

サポートされているすべてのDatabricks Runtimeバージョン

サポートされているすべてのDatabricks Runtimeバージョン

ワークスペースファイル

サポートされていない

サポートされていない

14.1以上

ボリューム

LTS以上

LTS以上

サポートされていない

クラウドストレージ

LTS以上

サポートされているすべてのDatabricks Runtimeバージョン

サポートされているすべてのDatabricks Runtimeバージョン

DBFS (推奨されません)

サポートされていない

14.3 以下

14.3 以下

R ライブラリのサポート

次の表は、さまざまなクラスター アクセス モードの CRAN パッケージのDatabricks Runtimeバージョンの互換性を示しています。 「Databricks Runtime リリース ノートのバージョンと互換性」および「アクセス モード」を参照してください。

共有アクセスモード

シングル・ユーザー・アクセス・モード

分離なしの共有アクセス モード (レガシ)

CRAN

サポートされていない

サポートされているすべてのDatabricks Runtimeバージョン

サポートされているすべてのDatabricks Runtimeバージョン

ノートブック スコープのライブラリ

Python と R で利用できるノートブックスコープのライブラリを使用すると、ライブラリをインストールして、ノートブックセッションを対象とする環境を作成できます。これらのライブラリは、同じクラスター上で実行されている他のノートブックには影響しません。ノートブックスコープのライブラリは永続化されないため、セッションごとに再インストールする必要があります。特定のノートブック用のカスタム環境が必要な場合は、ノートブックスコープのライブラリを使用します。

注:

JAR はノートブック レベルではインストールできません。

重要

ワークスペース ライブラリは非推奨になっているため、使用しないでください。 「ワークスペース ライブラリ (レガシー)」を参照してください。 ただし、ライブラリをワークスペース ファイルとして保存することは、ワークスペース ライブラリとは異なり、引き続き完全にサポートされます。 ワークスペース ファイルとして保存されているライブラリをコンピュートまたはジョブ タスクに直接インストールできます。

Python 環境管理

次の表は、Databricks に Python ライブラリをインストールするために使用できるオプションの概要を示しています。

Python パッケージのソース

%pip があるノートブックスコープのライブラリ

クラスターライブラリ

ジョブ API があるジョブライブラリ

PyPI

%pip installを使用します。を参照してください。

ソースとして PyPI を選択します。

新しい pypi オブジェクトをジョブライブラリに追加し、package フィールドを指定します。

Nexus や Artifactory などのプライベート PyPI ミラー

--index-url オプションと共に %pip install を使用します。シークレット管理 が可能です。 を参照してください。

サポートされていません。

サポートされていません。

生のソースを使用する GitHub などの VCS

%pip install を使用し、パッケージ名としてリポジトリ URL を指定します。を参照してください。

ソースとして PyPI を選択し、パッケージ名としてリポジトリ URL を指定します。

新しい pypi オブジェクトをジョブライブラリに追加し、リポジトリ URL を package フィールドとして指定します。

生のソースを使用するプライベート VCS

%pip install を使用し、パッケージ名として基本認証を含むリポジトリ URL を指定します。シークレット管理 が可能です。 を参照してください。

サポートされていません。

サポートされていません。

ファイルパス

%pip installを使用します。を参照してください。

ソースとしてファイル パス/S3を選択します。

新しい egg または whl オブジェクトをジョブライブラリに追加し、ファイルパスを package フィールドとして指定します。

S3

%pip install は署名付き URL と一緒に使用します。S3 プロトコルのパス s3:// はサポートされていません。

ソースとしてファイル パス/S3を選択します。

新しい egg または whl オブジェクトをジョブライブラリに追加し、S3 パスを package フィールドとして指定します。

Python ライブラリの優先順位

組み込みライブラリのバージョンのオーバーライドが必要な場合や、クラスターにインストールされている別のライブラリと名前が競合するカスタムライブラリが存在する場合があります。import <library> を実行すると、優先順位の高いライブラリがインポートされます。

重要

ワークスペース ファイルに保存されているライブラリは、Python sys.pathに追加される方法に応じて異なる優先順位を持ちます。 Databricks Git フォルダーは、他のすべてのライブラリの前に現在の作業ディレクトリをパスに追加しますが、Git フォルダー外のノートブックは、他のライブラリがインストールされた後に現在の作業ディレクトリを追加します。 ワークスペース ディレクトリをパスに手動で追加する場合、これらの優先順位は常に最も低くなります。

次のリストでは、優先順位が高いものから低いものの順に並べられています。このリストでは、数字が小さいほど優先順位が高くなっています。

  1. 現在の作業ディレクトリ内のライブラリ (Git フォルダーのみ)。

  2. Git フォルダーのルート ディレクトリ内のライブラリ (Git フォルダーのみ)。

  3. ノートブックスコープのライブラリ(ノートブック内の %pip install)。

  4. クラスターライブラリ(UI、CLI、または API を使用)。

  5. Databricks Runtime に含まれるライブラリ。

    • initスクリプトでインストールされたライブラリは、インストール方法に応じて、組み込みライブラリの前または後に解決される場合があります。Databricks では、init スクリプトを使用してライブラリをインストールすることはお勧めしません。

  6. 現在の作業ディレクトリ内のライブラリ (Git フォルダー内ではない)。

  7. sys.path に追加されたワークスペースファイル .