ライブラリ

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

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

Note

Microsoft サポートは、Azure Databricks によってインストールおよび管理されるライブラリに関連する問題を特定し、解決するのに役立ちます。 サードパーティ製のコンポーネント (ライブラリを含む) については、Microsoft では、問題のトラブルシューティングを支援するために、商業的に妥当な範囲のサポートを提供しています。 Microsoft サポートは、ベストエフォート方式に従っているため、問題を解決できる場合があります。 Github でホストされているオープンソースのコネクタとプロジェクトについては、Github で問題を報告し、それに従ってください。 jar のシェーディングや Python ライブラリのビルドなどの開発作業は、標準のサポート ケースの提出プロセスではサポートされていません。迅速な解決のためにコンサルティングのエンゲージメントが必要です。 サポートでは、該当テクノロジの深い専門知識が入手できる、オープンソース テクノロジ用のその他のチャネルへの参加をお願いすることになる場合もあります。 コミュニティ サイトがいくつかあります。2 つの例として、Azure Databricks に関する Microsoft Q&A ページStack Overflow があります。

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

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

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

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

重要

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

Databricks は、代わりにワークスペース ファイルまたは Unity Catalog ボリュームに Python ライブラリ、JAR ファイル、Spark コネクタを含むすべてのライブラリをアップロードするか、ライブラリ パッケージ リポジトリを使用することを推奨しています。 ワークロードでこれらのパターンがサポートされない場合、クラウド オブジェクト ストレージに格納されているライブラリも使用できます。

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

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

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

重要

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

次の表は、Databricks Runtime のバージョンと Unity カタログの有効化別に整理された推奨事項を示しています。

構成 推奨事項
Databricks Runtime 13.3 LTS 以降と Unity カタログ すべてのアカウント ユーザーに対して GRANT READ を使用して Unity カタログ ボリューム から 共有アクセス モード を使用して、コンピューティングにライブラリをインストールします。

該当する場合は、Maven 座標と JAR ライブラリ パスを allowlist に追加する必要があります。
Databricks Runtime 11.3 LTS 以降で Unity カタログなし ワークスペース ファイルからライブラリをインストールします。 (ファイル サイズの制限は 500 MB です。)
Databricks Runtime 10.4 LTS 以下 クラウド オブジェクト ストレージからライブラリインストールします。

Python ライブラリのサポート

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

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

Note

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

共有アクセス モード シングル ユーザー アクセス モード 分離なし共有アクセス モード (レガシ)
PyPI 13.3 LTS 以降 すべてのサポートされている Databricks Runtime バージョン すべてのサポートされている Databricks Runtime バージョン
ワークスペース ファイル 13.3 LTS 以降 13.3 LTS 以降 14.1 以降
Volumes 13.3 LTS 以降 13.3 LTS 以降 サポートされていません
クラウド ストレージ 13.3 LTS 以降 すべてのサポートされている Databricks Runtime バージョン すべてのサポートされている Databricks Runtime バージョン
DBFS (非推奨) サポートされていません 14.3 以前 14.3 以前

Java ライブラリと Scala ライブラリのサポート

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

Note

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

共有アクセス モード シングル ユーザー アクセス モード 分離なし共有アクセス モード (レガシ)
Maven 13.3 LTS 以降 すべてのサポートされている Databricks Runtime バージョン すべてのサポートされている Databricks Runtime バージョン
ワークスペース ファイル サポートされていません サポート対象外 14.1 以降
Volumes 13.3 LTS 以降 13.3 LTS 以降 サポートされていません
クラウド ストレージ 13.3 LTS 以降 すべてのサポートされている Databricks Runtime バージョン すべてのサポートされている Databricks Runtime バージョン
DBFS (非推奨) サポートされていません 14.3 以前 14.3 以前

R ライブラリのサポート

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

共有アクセス モード シングル ユーザー アクセス モード 分離なし共有アクセス モード (レガシ)
CRAN サポートされていません すべてのサポートされている Databricks Runtime バージョン すべてのサポートされている Databricks Runtime バージョン

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

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

Note

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

重要

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

Python 環境の管理

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

Note

  • conda ベースの環境を使用するカスタム コンテナーは、Databricks Runtime 10.4 LTS 以上のノートブックスコープ ライブラリクラスター ライブラリとは互換性がありません。 代わりに、Azure Databricks ライブラリをイメージに直接インストールするか、init スクリプトを使用することをお勧めします。 これらのシナリオでクラスター ライブラリを引き続き使用するには、Spark 構成spark.databricks.driverNfs.clusterWidePythonLibsEnabledfalse に設定します。 Spark 構成のサポートは、2021 年 12 月 31 日以降に削除されます。
Python パッケージ ソース %pip を使用するノートブック スコープのライブラリ 基本環境 YAML ファイルを含むノートブック スコープ ライブラリ クラスター ライブラリ Jobs API を使用するジョブ ライブラリ
PyPI %pip installを使用します。 を参照してください。 PyPI パッケージ名を基本環境の YAML ファイルに追加します。 を参照してください。 ソースとして [PyPI] を選択します。 ジョブ ライブラリに新しい pypi オブジェクトを追加し、package フィールドを指定します。
プライベート PyPI ミラー (Nexus や Artifactory など) --index-url オプションを指定した %pip install を使用します。 シークレットの管理を使用できます。 を参照してください。 基本環境の YAML ファイルに -–index-url を追加します。 シークレットの管理を使用できます。 を参照してください。 サポートされていません。 サポートされていません。
生ソースを使用する VCS (GitHub など) %pip install を使用し、パッケージ名としてリポジトリの URL を指定します。 を参照してください。 パッケージ名としてリポジトリ URL を基本環境の YAML ファイルに追加します。 を参照してください。 ソースとして [PyPI] を選択し、パッケージ名としてリポジトリの URL を指定します。 新しい pypi オブジェクトをジョブ ライブラリに追加し、package フィールドとしてリポジトリの URL を指定します。
生ソースを使用するプライベート VCS %pip install を使用し、基本認証を使用するリポジトリの URL をパッケージ名として指定します。 シークレットの管理を使用できます。 を参照してください。 基本認証を含むリポジトリをパッケージ名として基本環境 YAML ファイルに追加します。 を参照してください。 サポートされていません。 サポートされていません。
[ファイル パス] %pip install を使用してください。 を参照してください。 パッケージ名としてファイル パスを基本環境の YAML ファイルに追加します。 を参照してください。 ソースとして [File path/ADLS] (ファイル パス/ADLS) を選択します。 新しい egg または whl オブジェクトをジョブ ライブラリに追加し、package フィールドとしてファイル パスを指定します。
Azure Data Lake Storage Gen2 事前署名済みの URL と共に %pip install を使用します。 Azure Data Lake Storage Gen2 プロトコル abfss:// を使用したパスはサポートされていません。 パッケージ名として事前署名された URL を基本環境の YAML ファイルに追加します。 Azure Data Lake Storage Gen2 プロトコル abfss:// を使用したパスはサポートされていません。 ソースとして [File path/ADLS] (ファイル パス/ADLS) を選択します。 新しい egg または whl オブジェクトをジョブ ライブラリに追加し、package フィールドとして Azure Data Lake Storage Gen2 パスを指定します。

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 に追加されたワークスペース ファイル。