ライブラリ APILibraries API

Library API を使用すると、ライブラリをインストールしてアンインストールし、クラスター上のライブラリの状態を取得できます。The Libraries API allows you to install and uninstall libraries and get the status of libraries on a cluster.

すべてのクラスター の状態 All Cluster Statuses

エンドポイントEndpoint HTTP メソッドHTTP Method
2.0/libraries/all-cluster-statuses GET

すべてのクラスターのすべてのライブラリの状態を取得します。Get the status of all libraries on all clusters. API またはライブラリ UI でクラスターにインストールされているすべてのライブラリと、ライブラリ UI を使用してすべてのクラスターにインストールされるように設定されているライブラリの状態が表示されます。A status will be available for all libraries installed on clusters via the API or the libraries UI as well as libraries set to be installed on all clusters via the libraries UI. ライブラリがすべてのクラスターにインストールされるように設定されている場合、ライブラリがこの特定のクラスターにもインストールされていても、is_library_for_all_clusterstrue されます。If a library has been set to be installed on all clusters, is_library_for_all_clusters will be true, even if the library was also installed on this specific cluster.

応答の例Example response

{
  "statuses": [
    {
      "cluster_id": "11203-my-cluster",
      "library_statuses": [
        {
          "library": {
            "jar": "dbfs:/mnt/libraries/library.jar"
          },
          "status": "INSTALLING",
          "messages": [],
          "is_library_for_all_clusters": false
        }
      ]
    },
    {
      "cluster_id": "20131-my-other-cluster",
      "library_statuses": [
        {
          "library": {
            "egg": "dbfs:/mnt/libraries/library.egg"
          },
          "status": "ERROR",
          "messages": ["Could not download library"],
          "is_library_for_all_clusters": false
        }
      ]
    }
  ]
}

応答構造体 Response Structure

フィールド名Field Name タイプType descriptionDescription
状況statuses Clusterlibrarystatuses 状態の配列An array of ClusterLibraryStatuses クラスターの状態の一覧。A list of cluster statuses.

クラスターの状態 Cluster Status

エンドポイントEndpoint HTTP メソッドHTTP Method
2.0/libraries/cluster-status GET

クラスター上のライブラリの状態を取得します。Get the status of libraries on a cluster. API またはライブラリ UI でクラスターにインストールされているすべてのライブラリと、ライブラリ UI を使用してすべてのクラスターにインストールされるように設定されているライブラリの状態が表示されます。A status will be available for all libraries installed on the cluster via the API or the libraries UI as well as libraries set to be installed on all clusters via the libraries UI. ライブラリがすべてのクラスターにインストールされるように設定されている場合は、ライブラリがクラスターにもインストールされていても、is_library_for_all_clusterstrue されます。If a library has been set to be installed on all clusters, is_library_for_all_clusters will be true, even if the library was also installed on the cluster.

要求の例Example request

/libraries/cluster-status?cluster_id=11203-my-cluster

応答の例Example response

{
  "cluster_id": "11203-my-cluster",
  "library_statuses": [
    {
      "library": {
        "jar": "dbfs:/mnt/libraries/library.jar"
      },
      "status": "INSTALLED",
      "messages": [],
      "is_library_for_all_clusters": false
    },
    {
      "library": {
        "pypi": {
          "package": "beautifulsoup4"
        },
      },
      "status": "INSTALLING",
      "messages": ["Successfully resolved package from PyPI"],
      "is_library_for_all_clusters": false
    },
    {
      "library": {
        "cran": {
          "package": "ada",
          "repo": "https://cran.us.r-project.org"
        },
      },
      "status": "FAILED",
      "messages": ["R package installation is not supported on this spark version.\nPlease upgrade to Runtime 3.2 or higher"],
      "is_library_for_all_clusters": false
    }
  ]
}

要求構造 Request Structure

フィールド名Field Name タイプType descriptionDescription
cluster_idcluster_id STRING 状態を取得する必要があるクラスターの一意の識別子。Unique identifier of the cluster whose status should be retrieved.
このフィールドは必須です。This field is required.

応答構造体 Response Structure

フィールド名Field Name タイプType descriptionDescription
cluster_idcluster_id STRING クラスターの一意の識別子。Unique identifier for the cluster.
library_statuseslibrary_statuses Libraryfullstatusの配列An array of LibraryFullStatus クラスター上のすべてのライブラリの状態。Status of all libraries on the cluster.

インストール Install

エンドポイントEndpoint HTTP メソッドHTTP Method
2.0/libraries/install POST

クラスターにライブラリをインストールします。Install libraries on a cluster. インストールは非同期であり、要求後にバックグラウンドで完了します。The installation is asynchronous - it completes in the background after the request.

重要

クラスターが終了した場合、この呼び出しは失敗します。This call will fail if the cluster is terminated.

Databricks Runtime 4.2 以降を実行しているクラスターにホイールライブラリをインストールする場合は、ドライバーと実行プログラムで直接ホイールファイルに対して pip コマンドを実行するのと同じです。Installing a wheel library on clusters running Databricks Runtime 4.2 or higher is like running the pip command against the wheel file directly on driver and executors. ライブラリ setup.py ファイルに指定されているすべての依存関係がインストールされます。そのためには、ライブラリ名がホイールファイル名の規則を満たしている必要があります。All the dependencies specified in the library setup.py file are installed and this requires the library name to satisfy the wheel file name convention. 実行されるのは、新しいタスクが起動されたときだけです。同じタスクを起動したときに複数のホイールファイルがインストールされている場合は、インストール順序が非決定的になります。The installation on the executors happens only when a new task is launched and the installation order is nondeterministic if there are multiple wheel files to be installed by the same task launching. 明確なインストール順序を取得するには、すべてのホイールファイルを含むサフィックス .wheelhouse.zip を含む zip ファイルを作成します。To get a deterministic installation order, create a zip file with suffix .wheelhouse.zip that includes all the wheel files.

4.2 より前の Databricks Runtime を実行しているクラスターにホイールライブラリをインストールすると、依存関係をインストールせずに、そのファイルが PYTHONPATH 変数に追加されます。Installing a wheel library on clusters running Databricks Runtime lower than 4.2 adds the file to the PYTHONPATH variable, without installing the dependencies.

CRAN ライブラリは Databricks Runtime 3.2 以降を実行しているクラスターにのみインストールできます。CRAN libraries can be installed only on clusters running Databricks Runtime 3.2 and above.

要求の例Example request

{
  "cluster_id": "10201-my-cluster",
  "libraries": [
    {
      "jar": "dbfs:/mnt/libraries/library.jar"
    },
    {
      "egg": "dbfs:/mnt/libraries/library.egg"
    },
    {
      "whl": "dbfs:/mnt/libraries/mlflow-0.0.1.dev0-py2-none-any.whl"
    },
    {
      "whl": "dbfs:/mnt/libraries/wheel-libraries.wheelhouse.zip"
    },
    {
      "maven": {
        "coordinates": "org.jsoup:jsoup:1.7.2",
        "exclusions": ["slf4j:slf4j"]
      }
    },
    {
      "pypi": {
        "package": "simplejson",
        "repo": "https://my-pypi-mirror.com"
      }
    },
    {
      "cran": {
        "package": "ada",
        "repo": "https://cran.us.r-project.org"
      }
    }
  ]
}

要求構造 Request Structure

フィールド名Field Name タイプType descriptionDescription
cluster_idcluster_id STRING これらのライブラリをインストールするクラスターの一意の識別子。Unique identifier for the cluster on which to install these libraries.
このフィールドは必須です。This field is required.
librarieslibraries ライブラリの配列An array of Library インストールするライブラリ。The libraries to install.

アンインストール Uninstall

エンドポイントEndpoint HTTP メソッドHTTP Method
2.0/libraries/uninstall POST

クラスターでアンインストールするライブラリを設定します。Set libraries to be uninstalled on a cluster. ライブラリは、クラスターが再起動されるまでアンインストールされません。The libraries aren’t uninstalled until the cluster is restarted. クラスターにインストールされていないライブラリをアンインストールしても影響はありませんが、エラーにはなりません。Uninstalling libraries that are not installed on the cluster has no impact but is not an error.

要求の例Example request

{
  "cluster_id": "10201-my-cluster",
  "libraries": [
    {
      "jar": "dbfs:/mnt/libraries/library.jar"
    },
    {
      "cran": "ada"
    }
  ]
}

要求構造 Request Structure

フィールド名Field Name タイプType descriptionDescription
cluster_idcluster_id STRING これらのライブラリをアンインストールするクラスターの一意の識別子。Unique identifier for the cluster on which to uninstall these libraries.
このフィールドは必須です。This field is required.
librarieslibraries ライブラリの配列An array of Library アンインストールするライブラリ。The libraries to uninstall.

データ構造 Data Structures

Clusterlibrarystatuses 状態 ClusterLibraryStatuses

フィールド名Field Name タイプType descriptionDescription
cluster_idcluster_id STRING クラスターの一意の識別子。Unique identifier for the cluster.
library_statuseslibrary_statuses Libraryfullstatusの配列An array of LibraryFullStatus クラスター上のすべてのライブラリの状態。Status of all libraries on the cluster.

ライブラリ Library

フィールド名Field Name タイプType descriptionDescription
jar または egg または whl またはjar OR egg OR whl OR
pypi または maven または cranpypi OR maven OR cran
STRING または STRING または STRING またはPython Pyp・またはSTRING OR STRING OR STRING OR PythonPyPiLibrary OR
MaベンダーライブラリまたはRCranLibraryMavenLibrary OR RCranLibrary
@No__t_0 の場合は、DBFS をインストールする jar の URI を指定します。If jar, DBFS URI of the jar to be installed.
次に例を示します。 { "jar": "dbfs:/mnt/databricks/library.jar"<br>}です。For example: { "jar": "dbfs:/mnt/databricks/library.jar"<br>}.

@No__t_0 の場合、DBFS はインストールする卵の URI を指定します。If egg, DBFS URI of the egg to be installed.
次に例を示します。 { "egg": "dbfs:/my/egg" }です。For example: { "egg": "dbfs:/my/egg" }.

@No__t_0 場合は、ホイールまたは zip ホイールの URIIf whl, URI of the wheel or zipped wheels to be
ら.installed. DBFS Uri のみがサポートされています。Only DBFS URIs are supported.
次に例を示します。 { "whl": "dbfs:/my/whl" }です。For example: { "whl": "dbfs:/my/whl" }.

ホイールファイル名には、The wheel file name needs to use the
正しい規則correct convention.
Zip 形式のホイールをインストールする場合は、ファイル名のサフィックスを付ける必要があります。If zipped wheels are to be installed, the file name suffix should
.wheelhouse.zip します。be .wheelhouse.zip.

@No__t_0 場合、PyPI ライブラリの指定If pypi, specification of a PyPI library to be
ら.installed. 例えば次が挙げられます。For example:
{ "package": "simplejson" }

@No__t_0 場合、Maven ライブラリを指定します。If maven, specification of a Maven library to be
ら.installed. 例えば次が挙げられます。For example:
{ "coordinates": "org.jsoup:jsoup:1.7.2" }

@No__t_0 場合、インストールする CRAN ライブラリを指定します。If cran, specification of a CRAN library to be installed.

Libraryfullstatus LibraryFullStatus

特定のクラスター上のライブラリの状態。The status of the library on a specific cluster.

フィールド名Field Name タイプType descriptionDescription
librarylibrary ライブラリLibrary ライブラリの一意の識別子。Unique identifier for the library.
statusstatus LibraryInstallStatusLibraryInstallStatus クラスターへのライブラリのインストールの状態。Status of installing the library on the cluster.
最大配信数messages @No__t_0 の配列An array of STRING このライブラリに関してこれまでに発生したすべての情報と警告メッセージ。All the info and warning messages that have occurred so far for this library.
is_library_for_all_clustersis_library_for_all_clusters BOOL ライブラリ UI を使用して、ライブラリがすべてのクラスターにインストールされるように設定されているかどうか。Whether the library was set to be installed on all clusters via the libraries UI.

Maベンダーライブラリ MavenLibrary

フィールド名Field Name タイプType descriptionDescription
coordinates STRING Gradle の Maven 座標。Gradle-style Maven coordinates. 次に例を示します。 org.jsoup:jsoup:1.7.2です。For example: org.jsoup:jsoup:1.7.2.
このフィールドは必須です。This field is required.
リポジトリrepo STRING Maven パッケージをインストールする maven リポジトリ。Maven repo to install the Maven package from. 省略した場合、両方の Maven Central RepositoryIf omitted, both Maven Central Repository
および Spark パッケージが検索されます。and Spark Packages are searched.
例外exclusions @No__t_0 の配列An array of STRING 除外する依存関係の一覧。List of dependences to exclude. 次に例を示します。 ["slf4j:slf4j", "*:hadoop-client"]です。For example: ["slf4j:slf4j", "*:hadoop-client"].

Maven 依存関係の除外:Maven dependency exclusions:
https://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.htmlhttps://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html.

Python pypの PythonPyPiLibrary

フィールド名Field Name タイプType descriptionDescription
パッケージpackage STRING インストールする PyPI パッケージの名前。The name of the PyPI package to install. また、オプションの正確なバージョンを指定することもできます。An optional exact version specification is also
さ.supported. 例: simplejson および simplejson==3.8.0Examples: simplejson and simplejson==3.8.0.
このフィールドは必須です。This field is required.
リポジトリrepo STRING パッケージが存在するリポジトリ。The repository where the package can be found. 指定しない場合、既定の pip インデックスはです。If not specified, the default pip index is
用い.used.

RCranLibrary RCranLibrary

フィールド名Field Name タイプType descriptionDescription
パッケージpackage STRING インストールする CRAN パッケージの名前。The name of the CRAN package to install.
このフィールドは必須です。This field is required.
リポジトリrepo STRING パッケージが存在するリポジトリ。The repository where the package can be found. 指定しない場合、既定の CRAN リポジトリが使用されます。If not specified, the default CRAN repo is used.

Libraryinstallstatus LibraryInstallStatus

特定のクラスター上のライブラリの状態。The status of a library on a specific cluster.

ステータスStatus descriptionDescription
行わPENDING ライブラリをインストールするための操作はまだ実行されていません。No action has yet been taken to install the library. この状態は、非常に短時間である必要があります。This state should be very short lived.
修復RESOLVING ライブラリをインストールするために必要なメタデータが、指定されたリポジトリから取得されています。Metadata necessary to install the library is being retrieved from the provided repository.

Jar、卵、Whl ライブラリの場合、この手順は何も行われません。For Jar, Egg, and Whl libraries, this step is a no-op.
INSTALLING ライブラリは、Spark にリソースを追加するか、を実行して、アクティブにインストールされています。The library is actively being installed, either by adding resources to Spark or executing
Spark ノード内のシステムコマンド。system commands inside the Spark nodes.
INSTALLED ライブラリが正常にインストールされました。The library has been successfully installed.
障害FAILED インストールの一部のステップが失敗しました。Some step in installation failed. 詳細については、[messages] フィールドを参照してください。More information can be found in the messages field.
UNINSTALL_ON_RESTARTUNINSTALL_ON_RESTART ライブラリは削除対象としてマークされています。The library has been marked for removal. ライブラリは、クラスターの場合にのみ削除できます。Libraries can be removed only when clusters
が再起動されるので、この状態になるライブラリは、クラスターが再起動されるまで残ります。are restarted, so libraries that enter this state will remain until the cluster is restarted.