建立 Python 套件安裝的程式庫集

程式庫集是程式庫的集合,您可以在耗用程式庫的 Spark 應用程式中建立及參照這些程式庫。 程式庫集儲存在實例建立時與實例相關聯的實例起始儲存體中。

目前,您只能透過 condapip install 來安裝 Python 套件。

Analytics Engine 組合了一個稱為 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": 指定用來識別程式庫集的名稱。 所建立的程式庫集儲存在您指定為 instance home 的 IBM Cloud Object Storage 實例中具有此名稱的檔案中。 重要事項: 如果您建立多個檔案庫集,則必須對每一個檔案庫集使用唯一名稱。 否則它們會彼此改寫。
    • "libraries": 定義一組程式庫。 您可以在此區段中指定一或多個檔案庫。 這個元素的每個程式庫套件管理程式都有一個子 JSON 物件。 目前只支援 "conda""pip" 套件管理程式。 使用 "pip""conda" 來安裝 Python 套件。
    • "conda": 程式庫套件管理程式。
    • "python": 磁帶庫語言。 目前僅支援 Python。
    • "packages": 要安裝的套件清單。 若要安裝特定版本的套件,請使用下列格式來傳遞版本: package_name==version
  2. 取得 IAM 記號

  3. 在下列 REST API 呼叫中,以 "arguments" 身分傳遞 JSON 檔案。 在傳遞至 REST API 呼叫時,請確定您已根據需要跳出引號。

    curl -X POST https://api.us-south.ae.cloud.ibm.com/v3/analytics_engines/<instance_id>/spark_applications --header "Authorization: Bearer <IAM token>" -H "content-type: application/json" -d @createLibraryset.json
    

    createLibraryset.json 的範例:

    {
      "application_details": {
        "application": "/opt/ibm/customization-scripts/customize_instance_app.py",
        "arguments": ["{\"library_set\":{\"action\":\"add\",\"name\":\"my_library_set\",\"libraries\":{\"conda\":{\"python\":{\"packages\":[\"numpy\"]}}}}}"]
        }
    }
    

    重要事項: 您必須跳出作為應用程式引數傳遞之字串中的所有雙引號字元。

    如果接受應用程式,您會收到類似下列的回應:

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

    當狀態變成 FINISHED 時,程式庫集建立完成。

  4. 透過呼叫應用程式狀態 REST API 來追蹤應用程式的狀態。 請參閱 取得應用程式的狀態