La bibliothèque ibm-watson-studio-lib
est le successeur de project-lib library
. Bien que vous puissiez continuer à utiliser l'API project-lib
dans vos blocs-notes, vous devez envisager la migration de blocs-notes existants pour utiliser la bibliothèque ibm-watson-studio-lib
.
L'utilisation de ibm-watson-studio-lib
présente les avantages suivants:
- L'API de navigation d'actifs fournit un accès en lecture seule à tous les types d'actifs, et pas seulement à ceux explicitement pris en charge par la bibliothèque.
ibm-watson-studio-lib
utilise une convention de dénomination d'API constistent qui structure les fonctions disponibles en fonction de leur zone d'application.
Les sections suivantes décrivent les modifications que vous devez apporter dans les blocs-notes Python existants pour commencer à utiliser la bibliothèque ibm-watson-studio-lib
.
Configuration de la bibliothèque
Vous devez apporter les modifications suivantes dans les blocs-notes existants pour commencer à utiliser ibm-watson-studio-lib
:
Dans le code utilisant project-lib
, modifiez:
from project_lib import Project
project = Project("<ProjectId>","<ProjectToken>")
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
from ibm_watson_studio_lib import access_project_or_space
wslib = access_project_or_space({"token":"<ProjectToken>"})
Configuration de la bibliothèque dans les environnements Spark
Vous devez effectuer les modifications suivantes dans les blocs-notes existants pour commencer à utiliser ibm-watson-studio-lib
dans les environnements Spark.
Dans le code utilisant project-lib
, modifiez:
from project_lib import Project
project = Project(sc,"<ProjectId>","<ProjectToken>")
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
from ibm_watson_studio_lib import access_project_or_space
wslib = access_project_or_space({"token":"<ProjectToken>"})
wslib.spark.provide_spark_context(sc)
Utilisation de la bibliothèque
Les sections suivantes décrivent les modifications de code que vous devez apporter dans vos blocs-notes lors de la migration de fonctions dans project-lib
vers les fonctions correspondantes dans ibm-watson-studio-lib
.
Obtenir des informations sur le projet
Pour extraire les informations associées au projet à l'aide d'un programme, vous devez modifier les fonctions suivantes:
Répertorier les connexions de données
Dans le code utilisant project-lib
, modifiez:
project.get_connections()
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
assets = wslib.list_connections()
wslib.show(assets)
Vous pouvez également, avec ibm-watson-studio-lib
, répertorier les actifs de données connectés:
assets = wslib.list_connected_data()
wslib.show(assets)
Répertorier les fichiers de données
Cette fonction renvoie la liste des fichiers de données de votre projet.
Dans le code à l'aide de project-lib
, modifiez à l'aide de:
project.get_files()
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
assets = wslib.list_stored_data()
wslib.show(assets)
Obtenir un nom ou une description
Dans ibm-watson-studio-lib
, vous pouvez extraire des métadonnées sur le projet, par exemple le nom d'un projet ou sa description, via le point d'entrée wslib.here
.
Dans le code utilisant project-lib
, modifiez:
name = project.get_name()
desc = project.get_description()
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
name = wslib.here.get_name()
desc = wslib.here.get_description()
Obtenir des métadonnées
Il n'y a pas de remplacement pour get_matadata
dans project-lib
:
project.get_metadata()
La fonction wslib.here
dans ibm-watson-studio-lib
expose des parties de ces informations. Pour savoir quelles informations de métadonnées de projet sont disponibles, utilisez:
help(wslib.here.API)
Par exemple :
wslib.here.get_name()
: Renvoie le nom du projetwslib.here.get_description()
: Renvoie la description du proejctwslib.here.get_ID()
: renvoie l'ID de projetwslib.here.get_storage()
: renvoie les métadonnées de stockage
Obtenir les métadonnées de stockage
Dans le code utilisant project-lib
, modifiez:
project.get_storage_metadata()
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
wslib.here.get_storage()
Extraire les données
Pour accéder aux données d'un fichier, vous devez modifier les fonctions suivantes.
Dans le code utilisant project-lib
, modifiez:
buffer = project.get_file("MyAssetName.csv")
# or, without direct storage access:
buffer = project.get_file("MyAssetName.csv", direct_storage=False)
# or:
buffer = project.get_file("MyAssetName.csv", direct_os_retrieval=False)
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
buffer = wslib.load_data("MyAssetName.csv")
De plus, ibm-watson-studio-lib
offre une fonction permettant de télécharger une ressource de données et de la stocker dans le système de fichiers local:
info = wslib.download_file("MyAssetName.csv", "MyLocalFile.csv")
Sauvegarde des données
Pour sauvegarder des données dans un fichier, vous devez modifier les fonctions suivantes.
Dans le code utilisant project-lib
change (et pour toutes les variantes de direct_store=False
et set_project_asset=True
):
project.save_data("NewAssetName.csv", data)
project.save_data("MyAssetName.csv", data, overwrite=True)
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
asset = wslib.save_data("NewAssetName.csv", data)
wslib.show(asset)
asset = wslib.save_data("MyAssetName.csv", data, overwrite=True)
wslib.show(asset)
De plus, ibm-watson-studio-lib
offre une fonction permettant de télécharger un fichier local dans le stockage du projet et de créer un actif de données:
asset = wslib.upload_file("MyLocalFile.csv", "MyAssetName.csv")
wslib.show(asset)
Obtenir les informations de connexion
Pour renvoyer les métadonnées associées à une connexion, vous devez modifier les fonctions suivantes.
Dans le code utilisant project-lib
, modifiez:
connprops = project.get_connection(name="MyConnection")
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
connprops = wslib.get_connection("MyConnection")
Obtenir des informations sur les données connectées
Pour renvoyer les métadonnées associées à un actif de données connecté, vous devez modifier les fonctions suivantes.
Dans le code utilisant project-lib
, modifiez:
dataprops = project.get_connected_data(name="MyConnectedData")
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
dataprops = wslib.get_connected_data("MyConnectedData")
Accéder à l'actif par ID à la place du nom
Vous pouvez renvoyer les métadonnées d'une connexion ou d'un actif de données connecté en accédant à l'actif par ID plutôt que par nom.
Dans project-lib
, modifiez:
connprops = project.get_connection(id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
# or:
connprops = project.get_connection("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
# or:
datapros = project.get_connected_data(id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
# or:
datapros = project.get_connected_data("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
connprops = wslib.by_id.get_connection("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
dataprops = wslib.by_id.get_connected_data("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
Dans project-lib
, il n'est pas possible d'accéder aux fichiers (actifs de données stockés) par ID. Vous ne pouvez le faire que par nom. La bibliothèque ibm-watson-studio-lib
prend en charge l'accès aux fichiers par ID. Voir Utilisation d'ibm-watson-studio-lib.
Extraire les actifs par type d'actif
Lorsque vous extrayez la liste de tous les actifs de projet, vous pouvez transmettre le paramètre facultatif asset_type
à la fonction get_assets
qui vous permet de filtrer les actifs par type. Les valeurs acceptées pour ce paramètre dans project-lib
sont data_asset
, connection
et asset
.
Dans le code utilisant project-lib
, modifiez:
project.get_assets()
# Or, for a supported asset type:
project.get_assets("<asset_type>")
# Or:
project.get_assets(asset_type="<asset_type>")
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
assets = wslib.assets.list_assets("asset")
wslib.show(assets)
# Or, for a specific asset type:
assets = wslib.assets.list_assets("<asset_type>")
# Example, list all notebooks:
notebook_assets = wslib.assets.list_assets("notebook")
wslib.show(notebook_assets)
Pour répertorier les types d'actif disponibles, utilisez:
assettypes = wslib.assets.list_asset_types()
wslib.show(assettypes)
Prise En Charge Spark
Pour utiliser Spark, vous devez modifier les fonctions qui activent la prise en charge de Spark et extraire l'URL d'un fichier.
Configuration de la prise en charge de Spark
Pour configurer la prise en charge de Spark:
Dans le code utilisant project-lib
, modifiez:
# Provide SparkContext during setup
from project_lib import Project
project = Project(sc,"<ProjectId>","<ProjectToken>")
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
from ibm_watson_studio_lib import access_project_or_space
wslib = access_project_or_space({'token':'<ProjectToken>'}
# provide SparkContext in a subsequent step
wslib.spark.provide_spark_context(sc)
Extraire l'URL pour accéder à un fichier à partir de Spark
Pour extraire une URL permettant d'accéder à un fichier référencé par un actif à partir de Spark via Hadoop:
Dans le code utilisant project-lib
, modifiez:
url = project.get_file_url("MyAssetName.csv")
# or
url = project.get_file_url("MyAssetName.csv", direct_storage=False)
# or
url = project.get_file_url("MyAssetName.csv", direct_os_retrieval=False)
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
url = wslib.spark.get_data_url("MyAssetName.csv")
Obtenir l'URL du fichier à utiliser avec Spark
Extrayez une URL pour accéder à un fichier référencé par un actif à partir de Spark via Hadoop.
Dans le code utilisant project-lib
, modifiez:
project.get_file_url("MyFileName.csv", direct_storage=True)
# or
project.get_file_url("MyFileName.csv", direct_os_retrieval=True)
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
wslib.spark.storage.get_data_url("MyFileName.csv")
Accéder directement au stockage de projet
Vous pouvez extraire des données du stockage de projet ou sauvegarder des données dans le stockage de projet sans synchroniser les actifs de projet.
Extraire les données
Pour extraire des données du stockage de projet:
Dans le code utilisant project-lib
, modifiez:
project.get_file("MyFileName.csv", direct_storage=True)
# Or:
project.get_file("MyFileName.csv", direct_os_retrieval=True)
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
wslib.storage.fetch_data("MyFileName.csv")
Sauvegarde des données
Pour sauvegarder des données dans un fichier du stockage de projet:
Dans le code utilisant project-lib
, modifiez:
# Save and do not create an asset in a project
project.save_data("NewFileName.csv", data, direct_storage=True)
# Or:
project.save_data("NewFileName.csv", data, set_project_asset=False)
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
wslib.storage.store_data("NewFileName.csv", data)
Dans le code utilisant project-lib
, modifiez:
# Save (and overwrite if file exists) and do not create an asset in the project
project.save_data("MyFileName.csv", data, direct_storage=True, overwrite=True)
# Or:
project.save_data("MyFileName.csv", data, set_project_asset=False, overwrite=True)
Pour ce qui suit à l'aide de ibm-watson-studio-lib
:
wslib.storage.store_data("MyFileName.csv", data, overwrite=True)
De plus, ibm-watson-studio-lib
fournit une fonction permettant de télécharger un fichier depuis le stockage de projet vers le système de fichiers local:
wslib.storage.download_file("MyStorageFile.csv", "MyLocalFile.csv")
Vous pouvez également enregistrer un fichier dans le stockage de projet en tant qu'actif de données en utilisant:
wslib.storage.register_asset("MyStorageFile.csv", "MyAssetName.csv")
En savoir plus
Pour utiliser la bibliothèque ibm-watson-studio-lib
pour Python dans des blocs-notes, voir ibm-watson-studio-lib for Python.
Rubrique parent: Utilisation d'ibm-watson-studio-lib