0 / 0
Retourner à la version anglaise de la documentation
project-lib pour Python
Dernière mise à jour : 21 nov. 2024
project-lib pour Python

Si vous avez besoin d'interagir avec vos projets watsonx.ai Studio et les actifs du projet à partir d'un notebook, vous pouvez utiliser la bibliothèque 'project-lib pour Python. La bibliothèque est comme une interface programmatique pour un projet.

A l'aide de la bibliothèque project-lib pour Python, vous pouvez accéder aux métadonnées et aux actifs du projet, y compris les fichiers et les connexions. La bibliothèque contient également des fonctions qui simplifient l'extraction des fichiers associés au projet.

Remarque :


-Les fonctions project-lib ne codent pas ou ne décodent pas les données lors de l'enregistrement de données dans un fichier ou de l'obtention de données à partir d'un fichier.
-Les fonctions project-lib ne peuvent pas être utilisées pour accéder aux actifs de dossier connectés (fichiers dans un chemin dans Cloud Object Storage).

Utilisation de la bibliothèque

La bibliothèque project-lib pour Python est préinstallée et peut être importée directement dans un bloc-notes dans l'éditeur de bloc-notes. Pour utiliser la bibliothèque project-lib dans votre bloc-notes, vous avez besoin de l'ID du projet et du jeton de projet.

Pour insérer le jeton du projet dans le bloc-notes :

  1. Cliquez sur l'icône Plus dans la barre d'outils du bloc-notes, puis sur Insérer un jeton de projet.

    Si un jeton de projet existe, une cellule contenant les informations suivantes est ajoutée au bloc-notes :

    from project_lib import Project
    project = Project(sc,"<ProjectId>","<ProjectToken>")
    

    sc correspond au contexte Spark si Spark est utilisé. <ProjectId> est l'ID de votre projet et <ProjectToken> est la valeur du jeton de projet.

    Si un message vous dit qu'aucun jeton de projet n'existe, cliquez sur le lien dans le message à rediriger vers la page Contrôle d'accès du projet dans laquelle vous pouvez créer un jeton de projet. Vous devez être éligible pour créer un jeton de projet. Pour plus d'informations, voir Ajout manuel du jeton de projet.

    Pour créer un jeton de projet :

    1. Dans l'onglet Gérer, sélectionnez la page Contrôle d'accès et cliquez sur Nouveau jeton d'accès sous Jetons d'accès.
    2. Entrez un nom, sélectionnez le rôle Éditeur pour le projet et créez un jeton.
    3. Retournez à votre bloc-notes, cliquez sur l'icône Plus dans la barre d'outils du bloc-notes, puis cliquez sur Insérer un jeton de projet.

Les fonctions project-lib

L'objet de projet instancié qui est créé après avoir importé la bibliothèque project-lib expose un ensemble de fonctions qui sont regroupées de la manière suivante :

Extraction des informations de projet

Vous pouvez utiliser les fonctions suivantes pour extraire des informations de projet à l'aide d'un programme :

  • get_name()

    Cette fonction renvoie le nom du projet.

  • get_description()

    Cette fonction renvoie la description du projet.

  • get_metadata()

    Cette fonction renvoie les métadonnées du projet.

  • get_storage_metadata()

    Cette fonction renvoie les métadonnées du stockage d'objets associé au projet.

  • get_project_bucket_name()

    Cette fonction renvoie le nom du compartiment de projet dans le stockage d'objets associé. Tous les fichiers de projet sont stockés dans ce compartiment.

  • get_files()

    Cette fonction renvoie la liste des fichiers de votre projet. Chaque élément de la liste renvoyée contient l'ID et le nom du fichier. La liste des fichiers renvoyés n'est triée par aucun critère et peut être modifiée lorsque vous appelez à nouveau la fonction.

  • get_assets()

    Cette fonction renvoie 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 sont data_asset, connection et asset. La valeur asset renvoie tous les actifs de votre projet. Par exemple, pour obtenir uniquement les actifs de données, utilisez la fonction get_assets("data_asset").

  • get_connections()

    Cette fonction renvoie la liste des connexions de votre projet. Chaque élément de la liste renvoyée contient l'ID et le nom de la connexion.

Extraction des fichiers

Vous pouvez utiliser les fonctions suivantes pour extraire des fichiers stockés dans le stockage d'objets associé à votre projet.

L'extraction de ces fichiers peut s'effectuer de deux manières :

  • get_file_url(file_name)file_name est le nom du fichier à extraire.

    Cette fonction renvoie l'URL permettant d'extraire un fichier du stockage d'objets à l'aide de Spark. L'URL est construite en fonction du type de stockage d'objets associé au projet. Les configurations Hadoop sont définies automatiquement lorsque vous interagissez avec le stockage d'objets de votre projet.

    L'exemple suivant montre comment utiliser cette fonction pour extraire des données du stockage d'objets à l'aide de Spark :

    # Import the lib
    from project_lib import Project
    project = Project(sc,"<ProjectId>", "<ProjectToken>")
    
    # Get the url
    url = project.get_file_url("myFile.csv")
    
    # Fetch the CSV file from the object storage using Spark
    from pyspark.sql import SparkSession
    spark = SparkSession.builder.getOrCreate()
    df_data_1 = spark.read\
      .format('org.apache.spark.sql.execution.datasources.csv.CSVFileFormat')\
      .option('header', 'true')\
      .load(url)
    df_data_1.show(5)
    
  • get_file(file_name)file_name est le nom du fichier à extraire.

    Cette fonction extrait un fichier du stockage d'objets dans la mémoire du noyau en cours d'exécution. La fonction renvoie une mémoire tampon d'octet qui peut être utilisée pour se connecter à des structures de données spécifiques du noyau, par exemple, une trame de données Pandas. Cette méthode d'extraction des fichiers n'est pas recommandée pour les fichiers très volumineux.

    L'exemple suivant explique comment extraire un fichier et lire les données dans une trame de données Pandas :

    # Import the lib
    from project_lib import Project
    project = Project(sc,"<ProjectId>", "<ProjectToken>")
    
    # Fetch the file
    my_file = project.get_file("myFile.csv")
    
    # Read the CSV data file from the object storage into a pandas DataFrame
    my_file.seek(0)
    import pandas as pd
    pd.read_csv(my_file, nrows=10)
    

Sauvegarde des données

Vous pouvez utiliser la fonction ci-après pour sauvegarder des données dans le stockage d'objets associé à votre projet. Ces données seront ajoutées sous forme de fichier au compartiment du projet dans le Cloud Object Storage associé. Cette fonction fait plusieurs choses. Elle place d'abord les données dans le stockage d'objets et les ajoute ensuite en tant qu'actif de données à votre projet pour que les données que vous avez sauvegardées sous forme de fichier soient visibles dans la liste des actifs de données de votre projet.

save_data(file_name, data, set_project_asset=True, overwrite=False)

La fonction utilise les paramètres suivants :

  • file_name : le nom du fichier créé.
  • data: données à télécharger. Il peut s'agir de n'importe quel objet de type file-like-object, par exemple, des mémoires tampon d'octets ou des mémoires tampon de chaîne.
  • set_project_asset[optional] : ajoute le fichier au projet en tant qu'actif de données une fois que les données ont été téléchargées dans la mémoire de l'objet. Ce paramètre utilise une valeur booléenne et la valeur true est affectée par défaut.
  • overwrite[optional]: remplace le fichier si le fichier existe déjà dans la mémoire de l'objet ou dans le projet. Par défaut, la valeur est false.

Voici un exemple qui montre comment sauvegarder des données dans un fichier dans le stockage d'objets :

# Import the lib
from project_lib import Project
project = Project(sc,"<ProjectId>", "<ProjectToken>")

# let's assume you have the pandas DataFrame  pandas_df which contains the data
# you want to save in your object storage as a csv file
project.save_data("file_name.csv", pandas_df.to_csv(index=False))

# the function returns a dict which contains the asset_id, bucket_name and file_name
# upon successful saving of the data

Lecture des données à partir d'une connexion

Vous pouvez utiliser la fonction ci-après pour obtenir les métadonnées (données d'identification) d'une connexion donnée.

get_connection: la fonction prend comme entrée l'ID de la connexion ou le nom de la connexion. Vous pouvez obtenir ces valeurs à l'aide de la fonction get_assets() qui renvoie les éléments id, name et type de tous les actifs répertoriés dans le projet.

La fonction get_connection renvoie les données d'identification de connexion que vous pouvez utiliser pour extraire des données de la source de données de connexion.

Voici un exemple qui vous montre comment extraire les données d'identification d'une connexion à l'aide de la fonction get_connection :

# Import the lib
from project_lib import Project
    project = Project(sc,"<ProjectId>", "<ProjectToken>")

conn_creds = project.get_connection(name="<ConnectionName>")

Si votre connexion est une connexion à dashDB, par exemple, vous pouvez extraire vos données en exécutant le code suivant :

from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()

host_url = "jdbc:db2://{}:{}/{}".format(conn_creds["host"], "50000", conn_creds["database"])
data_df = spark.read.jdbc(host_url, table="<TableName>", properties={"user": conn_creds["username"], "password": conn_creds["password"]})
data_df.show()

Extraction des données connectées

Vous pouvez utiliser la fonction ci-après pour extraire les données d'identification de données connectées. La fonction renvoie un dictionnaire contenant les données d'identification de connexion, en plus d'un attribut datapath qui pointe vers des données spécifiques de cette connexion, par exemple, une table dans une instance de dashDB ou une base de données dans une instance Cloudant.

get_connected_data: cette fonction prend comme entrée l'ID des données connectées ou le nom des données connectées. Vous pouvez obtenir ces valeurs à l'aide de la fonction get_assets() qui renvoie les éléments id, name et type de tous les actifs répertoriés dans le projet.

Voici un exemple qui montre comment extraire les données d'identification des données connectées dans une instance de dashDB à l'aide de la fonction get_connected_data :

# Import the lib
from project_lib import Project
project = Project(sc,"<ProjectId>", "<ProjectToken>")

creds = project.get_connected_data(name="<ConnectedDataName>")
# creds is a dictionary that has the connection credentials in addition to
# a datapath that references a specific table in the database
# creds: {'database': 'DB_NAME',
# 'datapath': '/DASH11846/SAMPLE_TABLE',
# 'host': 'dashdb-entry-yp-dal09-07.services.dal.bluemix.net',
# 'password': 'XXXX',
# 'sg_service_url': 'https://sgmanager.ng.bluemix.net',
# 'username': 'XXXX'}

En savoir plus

Voir une démonstration de ces fonctions dans cet article de blog.

Rubrique parent : Chargement et accès aux données dans un bloc-notes

Recherche et réponse à l'IA générative
Ces réponses sont générées par un modèle de langue de grande taille dans watsonx.ai en fonction du contenu de la documentation du produit. En savoir plus