IBM Cloud Docs
ライブラリセットの作成Pythonパッケージのインストール

ライブラリセットの作成Pythonパッケージのインストール

ライブラリー・セットは、ライブラリーを使用するSparkアプリケーションで作成および参照できるライブラリーの集合です。 ライブラリー・セットは、インスタンスの作成時にインスタンスに関連付けられたインスタンス・ホーム・ストレージに保管されます。

現在、Pythonパッケージはcondaまたはpip installを介してのみインストールできます。 Sparkエンジンは、 customize_instance_app.py というSparkアプリケーションをバンドルしています。このアプリケーションを実行すると、カスタムパッケージを含むライブラリセットが作成され、Sparkアプリケーションで利用できるようになります。

前提条件:ライブラリー・セットを作成するには、Sparkアプリケーションをサブミットする権限が必要です。 見る 役割と権限の管理

ライブラリー・セットを作成するには:

  1. 以下のようなJSONファイルを準備します:

    {
      "library_set": {
        "action": "add",
        "name": "my_library_set",
        "libraries": {
          "conda": {
            "python": {
              "packages": ["numpy"]
              }
          }
      }
      }
    }
    

    JSON属性の説明は以下のとおりです:

    • "library_set":ライブラリー・セットを定義する最上位のJSONオブジェクト。
    • "action":ライブラリー・セットに対して実行するアクションを指定します。 ライブラリー・セットを作成するには、"add"を使用します。 現在、サポートされているオプションは"add"のみです。
    • "name":ライブラリー・セットが識別される名前を指定します。 作成されたライブラリー・セットは、IBM Cloud Object Storageインスタンス内のこの名前のファイルに保管されます。これはinstance homeとして指定したものです。 重要:複数のライブラリー・セットを作成する場合は、セットごとに固有の名前を使用する必要があります。 その他の場合、相互に上書きされます。
    • "libraries":ライブラリーのセットを定義します。 このセクションでは、1つ以上のライブラリーを指定することができます。 このエレメントには、ライブラリー・パッケージ・マネージャーごとに1つの子JSONオブジェクトがあります。 現時点では、"conda"パッケージ・マネージャーと"pip"パッケージ・マネージャーのみがサポートされています。 "pip"または"conda"を使用して、Pythonパッケージをインストールします。
    • "conda":ライブラリー・パッケージ・マネージャー。
    • "python":ライブラリー言語。 現在は、Pythonのみがサポートされています。
    • "packages":インストールするパッケージのリスト。 特定のバージョンのパッケージをインストールするには、次の形式を使用してバージョンを渡します。package_name==version
  2. IAMトークンを取得します。

  3. 以下のREST API呼び出しで、JSONファイルを"arguments"として受け渡します。 REST API呼び出しに受け渡す際には、必要に応じて引用符をエスケープしてください。

    curl --request POST
        --url https://<region>.lakehouse.cloud.ibm.com/lakehouse/api/v2/spark_engines/<spark_engine_id>/applications
        --header 'Authorization: Bearer <token>'
        --header 'Content-Type: application/json'
        --header 'AuthInstanceID: <crn_instance>'
        -d @createLibraryset.json
    

    重要:アプリケーション引数として渡されるストリング内のすべての二重引用符文字をエスケープする必要があります。

    パラメーター値:

    • <region> Spark インスタンスがプロビジョニングされるリージョン。
    • <spark_engine_id> : ネイティブSparkエンジンのエンジンID。
    • <crn_instance> watsonx.data インスタンスのCRN。
    • <token> ベアラートークン トークンの生成に関する詳細は、ベアラートークンの生成 を参照してください。

    アプリケーションが受け入れられると、以下のような応答を受け取ります:

    {
      "id": "87e63712-a823-4aa1-9f6e-7291d4e5a113",
      "state": "accepted"
    }
    

    状態がFINISHEDになると、ライブラリー・セットの作成は完了します。

  4. アプリケーション状況REST APIを呼び出して、アプリケーションの状況を追跡します。