Criação de um conjunto de bibliotecas para instalação do pacote Python

Um conjunto de bibliotecas é uma coleção de bibliotecas que pode ser criada e referenciada em aplicativos Spark que consomem as bibliotecas. O conjunto de bibliotecas é mantido no armazenamento inicial da instância associado à instância no momento em que ela é criada.

Atualmente, é possível instalar pacotes Python apenas por meio de conda ou pip install.

O Analytics Engine empacota um aplicativo Spark chamado customize_instance_app.py, que é executado para criar um conjunto de bibliotecas com pacotes customizados e pode ser consumido por aplicativos Spark.

Pré-requisitos: para criar um conjunto de bibliotecas, deve-se ter as permissões para enviar um aplicativo Spark. Consulte Permissões do usuário.

Para criar um conjunto de bibliotecas:

  1. Prepare um arquivo JSON da seguinte forma:

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

    A descrição dos atributos JSON é a seguinte:

    • "library_set": o objeto JSON de nível superior que define o conjunto de bibliotecas.
    • "action": especifica a ação a ser tomada para o conjunto de bibliotecas. Para criar um conjunto de bibliotecas, utilizamos "add". Atualmente, "add" é a única opção suportada.
    • "name": especifica o nome com o qual o conjunto de bibliotecas é identificado. O conjunto de bibliotecas criado é armazenado em um arquivo com este nome na instância IBM Cloud Object Storage especificada como instance home. Importante: se você criar mais de um conjunto de bibliotecas, deve-se utilizar nomes exclusivos para cada conjunto. Caso contrário, eles irão sobrescrever um ao outro.
    • "libraries": define um conjunto de bibliotecas. É possível especificar uma ou mais bibliotecas nesta seção. Este elemento possui um objeto JSON filho por gerenciador de pacotes de bibliotecas. Atualmente, apenas os gerenciadores de pacotes "conda" e "pip" são suportados. Use "pip" ou "conda" para instalar pacotes Python.
    • "conda": gerenciador de pacote de bibliotecas.
    • "python": a linguagem da biblioteca. Atualmente, apenas Python é suportado.
    • "packages": lista de pacotes para instalar. Para instalar uma versão específica de um pacote, passe a versão usando este formato: package_name==version.
  2. Obter o Token do IAM.

  3. Passe o arquivo JSON como "arguments" na chamada de API de REST a seguir. Certifique-se de fazer o escape das aspas conforme necessário ao passar para a chamada de API de REST.

    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
    

    Exemplo para 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\"]}}}}}"]
        }
    }
    

    Importante: deve-se fazer o escape de todos os caracteres de aspas duplas nas sequências passadas como argumentos de aplicativos.

    Se o aplicativo for aceito, você receberá uma resposta como a seguinte:

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

    Quando o estado mudar para CONCLUÍDO, a criação do conjunto de bibliotecas estará concluída.

  4. Controle o status do aplicativo chamando a API de REST de status do aplicativo. Consulte Obter o status de um aplicativo.