Creación de un conjunto de bibliotecas para la instalación del paquete Python
Un conjunto de bibliotecas es una colección de bibliotecas que puede crear y referenciar en aplicaciones de Spark que consumen las bibliotecas. El conjunto de bibliotecas se almacena en el almacenamiento de inicio de la instancia que se ha asociado con la instancia al crearla.
Actualmente, sólo puede instalar paquetes de Python a través de conda o pip install.
Analytics Engine empaqueta una aplicación de Spark denominada customize_instance_app.py, que se ejecuta para crear un conjunto de bibliotecas con los paquetes personalizados y que las aplicaciones de Spark pueden consumir.
Requisitos previos: para crear un conjunto de bibliotecas, debe tener los permisos para enviar una aplicación de Spark. Consulte Permisos de usuario.
Para crear un conjunto de bibliotecas:
-
Prepare un archivo JSON como el siguiente:
{ "library_set": { "action": "add", "name": "my_library_set", "libraries": { "conda": { "python": { "packages": ["numpy"] } } } } }Esta es la descripción de los atributos JSON:
"library_set": el objeto JSON de nivel superior que define el conjunto de bibliotecas."action": especifica la acción que se debe realizar para el conjunto de bibliotecas. Para crear un conjunto de bibliotecas, utilizamos"add". Actualmente,"add"es la única opción admitida."name": especifica el nombre con el que se identifica el conjunto de bibliotecas. El conjunto de bibliotecas creado se almacena en un archivo con este nombre en la instancia de IBM Cloud Object Storage que ha especificado comoinstance home. Importante: si crea más de un conjunto de bibliotecas, debe utilizar nombres exclusivos para cada conjunto. De lo contrario, se sobrescribirán."libraries": define un conjunto de bibliotecas. Puede especificar una o varias bibliotecas en esta sección. Este elemento tiene un objeto JSON hijo por gestor de paquetes de biblioteca. Actualmente, solo se admiten los gestores de paquetes de"conda"y"pip". Utilice"pip"o"conda"para instalar paquetes de Python."conda": gestor de paquetes de biblioteca."python": el lenguaje de la biblioteca. Actualmente, solo se admite Python."packages": lista de paquetes que se deben instalar. Para instalar una versión específica de un paquete, pase la versión utilizando este formato:package_name==version.
-
Obtenga la señal de IAM.
-
Pase el archivo JSON como
"arguments"en la siguiente llamada de API REST. Escape las comillas según sea necesario, mientras pasa a la llamada de la API 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.jsonEjemplo de 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: debe escapar todos los caracteres de comillas dobles en las series que se pasan como argumentos de aplicación.
Si la aplicación se acepta, recibirá una respuesta similar a la siguiente:
{ "id": "87e63712-a823-4aa1-9f6e-7291d4e5a113", "state": "accepted" }Cuando el estado pasa a FINISHED, finaliza la creación del conjunto de bibliotecas.
-
Realice un seguimiento del estado de la aplicación invocando la API REST de estado de aplicación. Consulte Obtener el estado de una aplicación.