0 / 0
Torna alla versione inglese della documentazione
project - lib per Python
Ultimo aggiornamento: 04 ott 2024
project - lib per Python

Se è necessario interagire con i progetti di Watson Studio e project asset da un notebook, è possibile utilizzare la libreria project-lib per Python. La biblioteca è come un'interfaccia programmaticale ad un progetto.

Utilizzando la libreria project-lib per Pythonè possibile accedere ai metadati del progetto e agli asset, inclusi i file e le connessioni. La libreria contiene anche funzioni che semplificano i file di recupero associati al progetto.

Nota:

  • Le funzioni project-lib non codificano o decodificano i dati durante il salvataggio dei dati da o per ottenere i dati da un file.
  • Le funzioni project-lib non possono essere utilizzate per accedere agli asset delle cartelle connesse (file su un percorso in Cloud Object Storage).

Utilizza la libreria

La libreria project-lib per Python è preinstallata e può essere importata direttamente in un notebook nell'editor del notebook. Per utilizzare la libreria project-lib nel notebook è necessario l'ID del progetto e il token del progetto.

Per inserire il token del progetto sul tuo notebook:

  1. Fare clic sull'icona Più sulla barra degli strumenti del notebook e quindi fare clic su Inserisci token del progetto.

    Se esiste un token del progetto, una cella viene aggiunta al tuo notebook con le seguenti informazioni:

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

    sc è il contesto Spark se si utilizza Spark. <ProjectId> è l'ID del tuo progetto e <ProjectToken> è il valore del token del progetto.

    Se ci si dice in un messaggio che non esiste alcun token di progetto, clicca sul link nel messaggio da reindirizzato alla pagina Controllo accessi del progetto in cui è possibile creare un token di progetto. È necessario essere idonei a creare un token di progetto. Per i dettagli, consultare Manualmente aggiungendo il token del progetto.

    Per creare un token di progetto:

    1. Dalla scheda Gestisci , selezionare la pagina Controllo accessi e fare clic su Nuovo token di accesso sotto token di accesso.
    2. Inserire un nome, selezionare Editor ruolo per il progetto e creare un token.
    3. Torna sul tuo notebook, clicca sull'icona Più sulla barra degli strumenti del notebook e clicca quindi su Inserisci token progetto.

Le funzioni project-lib

L'oggetto di progetto instanziato che viene creato dopo aver importato la libreria project-lib espone una serie di funzioni raggruppate nel seguente modo:

Informazioni sul progetto di recupero

È possibile utilizzare le seguenti funzioni per recuperare programmaticamente le informazioni relative al progetto:

  • get_name()

    Questa funzione restituisce il nome del progetto.

  • get_description()

    Questa funzione restituisce la descrizione del progetto.

  • get_metadata()

    Questa funzione restituisce i metadati del progetto.

  • get_storage_metadata()

    Questa funzione restituisce i metadati della memoria oggetto associata al progetto.

  • get_project_bucket_name()

    Questa funzione restituisce il nome del bucket del progetto nell'archivio oggetti associato. Tutti i file di progetto sono memorizzati in questo secchio.

  • get_files()

    Questa funzione restituisce l'elenco dei file nel tuo progetto. Ogni elemento nella lista restituita contiene l'ID e il nome del file. L'elenco dei file restituiti non è ordinato da alcun criterio e può cambiare quando si richiama nuovamente la funzione.

  • get_assets()

    Questa funzione restituisce un elenco di tutti gli asset del progetto. È possibile passare il parametro opzionale asset_type alla funzione get_assets che consente di filtrare gli asset per tipo. I valori accettati per questo parametro sono data_asset, connection e asset. Il valore asset restituisce tutti gli asset nel tuo progetto. Ad esempio, per ottenere solo gli asset dati, utilizzare la funzione get_assets("data_asset").

  • get_connections()

    Questa funzione restituisce un elenco delle connessioni che hai nel tuo progetto. Ogni elemento nella lista restituita contiene l'ID e il nome della connessione.

Recupera file

È possibile utilizzare le seguenti funzioni per recuperare i file memorizzati nella memoria oggetto associata al proprio progetto.

È possibile richiamare i file in due modi:

  • get_file_url(file_name) dove file_name è il nome del file che si desidera recuperare.

    Questa funzione restituisce l'URL per recuperare un file dalla memoria oggetto utilizzando Spark. L'URL è costruito in base al tipo di storage oggetto associato al progetto. Le configurazioni Hadoop vengono impostate automaticamente quando si interagisce con l'archiviazione oggetto del proprio progetto.

    Il seguente esempio mostra come utilizzare questa funzione per richiamare i dati dalla memoria oggetto utilizzando 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) dove file_name è il nome del file che si desidera recuperare.

    Questa funzione richiama un file dalla memoria dell'oggetto nella memoria del kernel in esecuzione. La funzione restituisce un buffer di byte che può essere utilizzato per eseguire il bind in strutture di dati specifiche del kernel, ad esempio, un panda DataFrame. Questo metodo di caricamento dei file non è consigliato per file molto grandi.

    L'esempio seguente mostra come recuperare un file e leggere i dati in un DataFrame: di 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)
    

Salva dati

È possibile utilizzare la seguente funzione per salvare i dati sulla memoria oggetto associata al proprio progetto. I dati verranno aggiunti come file al bucket del progetto nell'associato Cloud Object Storage. Questa funzione fa più cose. In primo luogo, mette i dati nella memoria dell'oggetto e poi aggiunge questi dati come asset di dati al tuo progetto in modo da poter vedere i dati che hai salvato come file nella lista degli asset di dati nel tuo progetto.

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

La funzione assume i seguenti parametri:

  • file_name: il nome del file creato.
  • data: i dati da caricare. Questo può essere qualsiasi oggetto di tipo file-like-object, ad esempio buffer di byte o buffer di stringa.
  • set_project_asset[optional]: aggiunge il file al progetto come asset di dati dopo che i dati sono stati caricati correttamente sull'archivio oggetti. Ci vuole un valore booleano e il valore vero è impostato per impostazione predefinita.
  • overwrite[optional]: sovrascrive il file se il file esiste già nell'archivio oggetti o nel progetto. Per impostazione predefinita è impostato su false.

Di seguito un esempio, che mostra come è possibile salvare i dati in un file nell'archivio oggetti:

# 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

Leggi i dati da una connessione

È possibile utilizzare la seguente funzione per ottenere i metadati (credenziali) di una determinata connessione.

get_connection: la funzione assume come input l'ID della connessione o il nome della connessione. È possibile ottenere questi valori utilizzando la funzione get_assets() che restituisce id, name e type di tutti gli asset elencati nel progetto.

La funzione get_connection restituisce le credenziali di connessione che è possibile utilizzare per richiamare i dati dalla sorgente dati di connessione.

Di seguito un esempio, che mostra come è possibile recuperare le credenziali di una connessione utilizzando la funzione get_connection :

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

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

Se la tua connessione è una connessione a dashDB , ad esempio, puoi recuperare i tuoi dati eseguendo il seguente codice:

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()

Recupero dati connessi

È possibile utilizzare la seguente funzione per richiamare le credenziali dei dati connessi. La funzione restituisce un dizionario che contiene le credenziali di connessione oltre a un attributo datapath che fa riferimento a dati specifici in tale connessione, ad esempio, una tabella in un'istanza dashDB o un database in un'istanza Cloudant .

get_connected_data: questa funzione assume come input l'ID dei dati connessi o il nome dei dati connessi. È possibile ottenere questi valori utilizzando la funzione get_assets() che restituisce id, name e type di tutti gli asset elencati nel progetto.

Di seguito viene riportato un esempio, che mostra come recuperare le credenziali dei dati connessi in una istanza di dashDB utilizzando la funzione 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'}

Ulteriori informazioni

Vedi una demo di queste funzioni in un post del blog.

Argomento principale: Lettura e accesso ai dati in un notebook

Ricerca e risposta AI generativa
Queste risposte sono generate da un modello di lingua di grandi dimensioni in watsonx.ai basato sul contenuto della documentazione del prodotto. Ulteriori informazioni