Création d'un ensemble de bibliothèques pour l'installation du package Python
Un ensemble de bibliothèques est une collection de bibliothèques que vous pouvez créer et faire référence dans des applications Spark qui consomment les bibliothèques. L'ensemble de bibliothèques est stocké dans le stockage de base de l'instance associé à l'instance au moment de la création de l'instance.
Actuellement, vous ne pouvez installer les packages Python que via condaou pip install.
Analytics Engine regroupe une application Spark appelée customize_instance_app.py que vous exécutez pour créer une bibliothèque définie avec vos packages personnalisés et pouvant être consommée par vos applications Spark.
Prérequis : pour créer un ensemble de bibliothèques, vous devez disposer des droits d'accès pour soumettre une application Spark. Voir Autorisations utilisateur.
Pour créer un ensemble de bibliothèques :
-
Préparez un fichier JSON comme suit :
{ "library_set": { "action": "add", "name": "my_library_set", "libraries": { "conda": { "python": { "packages": ["numpy"] } } } } }La description des attributs JSON est la suivante :
"library_set": objet JSON de niveau supérieur qui définit l'ensemble de bibliothèques."action": indique l'action à effectuer pour l'ensemble de bibliothèques. Pour créer un ensemble de bibliothèques, nous utilisons"add". Actuellement,"add"est la seule option prise en charge."name": indique le nom avec lequel l'ensemble de bibliothèques est identifié. L'ensemble de bibliothèques créé est stocké dans un fichier portant ce nom dans l'instance IBM Cloud Object Storage que vous avez spécifiée sous la formeinstance home. Important : si vous créez plusieurs ensembles de bibliothèques, vous devez utiliser des noms uniques pour chaque ensemble. Sinon, ils se remplaceront mutuellement."libraries": définit un ensemble de bibliothèques. Vous pouvez spécifier une ou plusieurs bibliothèques dans cette section. Cet élément a un objet JSON enfant par gestionnaire de package de bibliothèque. Actuellement, seuls les gestionnaires de packages"conda"et"pip"sont pris en charge. Utilisez"pip"ou"conda"pour installer les modules Python."conda": gestionnaire de modules de bibliothèque."python": langage de la bibliothèque. Actuellement, seul Python est pris en charge."packages": liste des packages à installer. Pour installer une version spécifique d'un package, transmettez la version en utilisant le format suivant:package_name==version.
-
Obtenez le fichier Jeton IAM.
-
Transmettez le fichier JSON en tant que
"arguments"dans l'appel API REST suivant. Veillez à échapper les guillemets, au besoin, lors de la transmission à l'appel d'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.jsonExemple pour 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\"]}}}}}"] } }Important : vous devez échapper à tous les guillemets dans les chaînes qui sont transmises en tant qu'arguments d'application.
Si l'application est acceptée, vous recevez une réponse de ce type :
{ "id": "87e63712-a823-4aa1-9f6e-7291d4e5a113", "state": "accepted" }Lorsque l'état devient TERMINÉ, la création de l'ensemble de bibliothèques est terminée.
-
Suivez le statut de l'application en appelant l'API REST de statut d'application. Voir Obtenir le statut d'une application.