Libraries | Databricks on AWS [2022/4/4時点]の翻訳です。
Databricksクイックスタートガイドのコンテンツです。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
お使いのクラスターで実行されるノートブックやジョブでサードパーティのカスタムコードを利用できるようにするために、ライブラリをインストールすることができます。ライブラリはPython、Java、Scala、Rで記述することができます。Java、Scala、Pythonのライブラリをアップロードすることができ、PyPI、Maven、CRANリポジトリの外部パッケージをポイントすることができます。
本書では、ワークスペースのUIにおけるライブラリのタスクの実行にフォーカスします。また、Libraries CLIやLibraries API 2.0をインストールすることができます。
ティップス
Databricksランタイムには多くの一般的なライブラリが含まれています。Databricksランタイムに含まれているライブラリを確認するには、お使いのDatabricksランタイムバージョンに対応するDatabricks Runtime release notesのSystem Environmentセクションをご覧ください。
重要!
お使いのノートブックやジョブが終了した際に、DatabricksはPythonのatexit
関数を呼び出しません。atexit
ハンドラーを登録するPythonライブラリを使用している場合、お使いのコードでexitする前に必要な関数を呼び出していることを確認してください。
Python eggのインストールは非推奨となり、将来的なDatabricksランタイムのリリースからは削除される予定です。代わりにPython wheelsを使用するか、PyPIからパッケージをインストールしてください。
3つのモードでライブラリをインストールすることができます。ワークスペース、クラスターへのインストール、ノートブックスコープでのインストールです。
-
ワークスペースライブラリは、クラスターにインストールされるライブラリのローカルリポジトリとして動作します。あなたの組織によって開発されたカスタムコードや、あなたの組織で標準化した特定バージョンのオープンソースライブラリなどがワークスペースライブラリになるかもしれません。
-
クラスターライブラリは、クラスターで動作しているすべてのノートブックから使用することができます。PyPIやMavenのような公開リポジトリから直接クラスターライブラリをインストールしたり、事前にインストールされたワークスペースライブラリからインストールすることができます。
-
PythonとRで使用できるノートブックスコープライブラリを用いることで、ノートブックのセッションに限定された環境にライブラリをインストールすることができます。これらのライブラリは、同じクラスターで動作している他のノートブックには影響を与えません。ノートブックスコープライブラリは永続化されず、セッションごとに再インストールする必要があります。特定のノートブック向けのカスタム環境が必要になった際に、ノートブックスコープライブラリを使用します。
このセクションでは以下をカバーします。
Pythonの環境管理
以下の表では、DatabricksでPythonライブラリをインストールするオプションの概要を説明しています。
注意
- マジックコマンドを使用するノートブックスコープライブラリは、Databricksランタイム7.1以降、Databricks機械学習ランタイム7.1以降、Databricks Runtime 7.1 for Genomics以降ではデフォルトで有効化されています。また、Databricks Runtime 6.4 MLから7.0 ML、Databricks Runtime 6.4 for GenomicsからDatabricks Runtime 7.0 for Genomicsにおいても、設定を行うことで利用することができます。詳細は要件をご覧ください。
- ライブラリユーティリティによるノートブックスコープライブラリは、Databricksランタイムでのみ利用することができます。Databricks機械学習ランタイムやDatabricks Runtime for Genomicsでは使用できません。
Pythonパッケージのソース | %pipを用いたノートブックスコープライブラリ | ライブラリユーティリティによるノートブックスコープライブラリ(非推奨) | クラスターライブラリ | Jobs APIによるジョブライブラリ |
---|---|---|---|---|
PyPI |
%pip install を使います。サンプルをご覧ください。 |
dbutils.library.installPyPI を使います。 |
ソースとしてPyPIを選択します。 | ジョブライブラリに新規pypi オブジェクトを追加し、package フィールドを指定します。 |
NexusやArtifactoryのようなプライベートPyPIミラー |
--index-url オプションを指定して%pip install を使います。シークレット管理を活用することができます。サンプルをご覧ください。 |
dbutils.library.installPyPI を使用し、引数repo を指定します。 |
サポートされていません。 | サポートされていません。 |
生のソースを持つGitHubのようなVCS |
%pip install を使用し、パッケージ名にリポジトリのURLを指定します。サンプルをご覧ください。 |
サポートされていません。 | ソースとしてPyPIを選択し、パッケージ名としてリポジトリのURLを指定します。 | ジョブライブラリに新規pypi オブジェクトを追加し、package フィールドにリポジトリURLを指定します。 |
生のソースを持つプライベートVCS | ソースとしてPyPIを選択し、パッケージ名としてリポジトリのURLとbasic認証を指定します。シークレット管理を活用することができます。サンプルをご覧ください。 | サポートされていません。 | サポートされていません。 | サポートされていません。 |
DBFS |
%pip install を使います。サンプルをご覧ください。 |
dbutils.library.install(dbfs_path) を使います。 |
ソースとしてDBFS/S3を選択します。 | ジョブライブラリに新規egg あるいはwhl オブジェクトを追加し、package フィールドとしてDBFSパスを指定します。 |
S3 | 事前サイン済みURLと一緒に%pip install を使用します。S3プロトコルs3:// はサポートされていません。 |
dbutils.library.install(s3_path) を使用します。 |
ソースとしてDBFS/S3を選択します。 | ジョブライブラリに新規egg あるいはwhl オブジェクトを追加し、package フィールドとしてS3パスを指定します。 |