ライブラリ

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

この記事では、ワークスペース UI でのライブラリ タスクの実行に焦点を当てます。 ライブラリは、ライブラリ CLI またはライブラリ API 2.0 を使用して管理することもできます。

ヒント

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

重要

ノートブックまたはジョブの処理が完了しても、Azure Databricks は Python atexit 関数を呼び出しません。 atexit ハンドラーを登録する Python ライブラリを使用する場合、終了する前にコードが必要な関数を呼び出すようにする必要があります。

Python の卵のインストールは非推奨となり、今後の Databricks Runtime リリースで削除される予定です。 代わりに、Python ホイールを使用するか、PyPI からパッケージをインストールします。

Note

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

ライブラリは、次の 3 つのモードでインストールできます: ワークスペース、クラスターインストール、ノートブックスコープ。

  • ワークスペース ライブラリは、クラスター インストール ライブラリの作成元のローカル リポジトリとして機能します。 ワークスペース ライブラリは、組織が作成したカスタム コードである場合もあれば、組織が標準化したオープンソース ライブラリの特定のバージョンである場合もあります。
  • クラスター ライブラリは、クラスターで実行されているすべてのノートブックで使用できます。 クラスター ライブラリは、PyPI や Maven などのパブリック リポジトリから直接インストールすることも、以前にインストールしたワークスペース ライブラリから作成することもできます。
  • Python と R で使用できるノートブック スコープのライブラリを使用すると、ライブラリをインストールし、ノートブック セッションにスコープを設定した環境を作成できます。 これらのライブラリは、同じクラスターで実行されている他のノートブックには影響しません。 ノートブック スコープのライブラリは保持されず、セッションごとに再インストールする必要があります。 特定のノートブック用のカスタム環境が必要な場合に、ノートブック スコープのライブラリを使用してください。

このセクションの内容について説明します。

Python 環境の管理

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

Note

  • Conda ベースの環境を使用するカスタム コンテナーは、Databricks Runtime 9.0 以降のノートブック スコープ ライブラリや Databricks Runtime 10.1 以降のクラスター ライブラリと互換性がありません。 代わりに、Azure Databricks ライブラリをイメージに直接インストールするか、init スクリプトを使用することをお勧めします。 これらのシナリオでクラスター ライブラリを引き続き使用するには、Spark 構成 spark.databricks.driverNfs.clusterWidePythonLibsEnabledfalse に設定します。 Spark 構成のサポートは、2021 年 12 月 31 日以降に削除されます。
  • マジック コマンドを使用したノートブック スコープ ライブラリは、規定で有効になっています。 詳細については、「必要条件」を参照してください。
  • ライブラリ ユーティリティを使用するノートブック スコープのライブラリは非推奨です。
Python パッケージ ソース %pip を使用するノートブック スコープのライブラリ ライブラリ ユーティリティを使用するノートブック スコープのライブラリ (非推奨) クラスター ライブラリ Jobs API を使用するジョブ ライブラリ
PyPI %pip install を使用してください。 を参照してください。 dbutils.library.installPyPI を使用します。 ソースとして [PyPI] を選択します。 ジョブ ライブラリに新しい pypi オブジェクトを追加し、package フィールドを指定します。
プライベート PyPI ミラー (Nexus や Artifactory など) --index-url オプションを指定して %pip install を使用します。 シークレットの管理を使用できます。 を参照してください。 dbutils.library.installPyPI を使用し、repo 引数を指定します。 サポートされていません。 サポートされていません。
生ソースを使用する VCS (GitHub など) %pip install を使用し、パッケージ名としてリポジトリの URL を指定します。 を参照してください。 サポートされていません。 ソースとして [PyPI] を選択し、パッケージ名としてリポジトリの URL を指定します。 新しい pypi オブジェクトをジョブ ライブラリに追加し、package フィールドとしてリポジトリの URL を指定します。
生ソースを使用するプライベート VCS %pip install を使用し、基本認証を使用するリポジトリの URL をパッケージ名として指定します。 シークレットの管理を使用できます。 を参照してください。 サポートされていません。 サポートされていません。 サポートされていません。
DBFS %pip install を使用してください。 を参照してください。 dbutils.library.install(dbfs_path) を使用します。 ソースとして [DBFS] を選択します。 新しい egg オブジェクトまたは whl オブジェクトをジョブ ライブラリに追加し、package フィールドとして DBFS パスを指定します。