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:
-
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 comoinstance 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.
-
Obter o Token do IAM.
-
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.jsonExemplo 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.
-
Controle o status do aplicativo chamando a API de REST de status do aplicativo. Consulte Obter o status de um aplicativo.