IBM Cloud Docs
创建库集Python包安装

创建库集Python包安装

库集是您可以在使用这些库的 Spark 应用程序中创建和引用的库的集合。 库集存储在创建实例时与该实例关联的实例主存储中。

目前您只能安装Python包裹通过 conda 或者 pip install。 Spark 引擎捆绑了一个名为 customize_instance_app.py 运行该程序可以创建一个包含自定义包的库集,可供您的 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":定义一组库。 您可以在此部分指定一个或多个库。 每个库包管理器此元素都有一个子 JSON 对象。 目前,只有 "conda""pip" 支持包管理器。 使用 "pip" 或者 "conda" 安装Python包。
    • "conda":库包管理器。
    • "python":图书馆语言。 目前只支持 Python。
    • "packages":要安装的软件包列表。 要安装软件包的特定版本,请使用以下格式传递版本:package_name==version
  2. 获取 IAM 令牌

  3. 传递 JSON 文件为 "arguments" 在以下 REST API 调用中。 确保在传递给 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 来跟踪应用程序的状态。