Migrazione da progetto - lib per Python a ibm - watson - studio - lib

La libreria ibm-watson-studio-lib è il successore di project-lib library. Anche se puoi continuare a utilizzare l'API project-lib nei tuoi notebook, è obsoleto e dovresti pensare di migrare i notebook esistenti per utilizzare la libreria ibm-watson-studio-lib .

Nota:

La libreria project-lib viene rimossa dal runtime 25.1. Nei runtime più vecchi, project-lib rimane disponibile.

I vantaggi dell'utilizzo di ibm-watson-studio-lib includono:

  • La libreria ibm-watson-studio-lib può essere utilizzata nei notebook in progetti e nei notebook promossi a uno spazio di distribuzione, senza richiedere modifiche al codice. In project-libl'ambito è limitato ai soli progetti.
  • L'asset browsing API fornisce l'accesso di sola lettura a tutti i tipi di asset, non solo quelli esplicitamente supportati dalla libreria.
  • ibm-watson-studio-lib utilizza una convenzione di denominazione API costistent che strutture le funzioni disponibili in base alla loro area di applicazione.

Le seguenti sezioni descrivono le modifiche che devi apportare nei notebook Python esistenti per iniziare a utilizzare la libreria ibm-watson-studio-lib .

Imposta la libreria

È necessario effettuare le seguenti modifiche nei notebook esistenti per iniziare a utilizzare ibm-watson-studio-lib:

In codice che utilizza project-lib modifica:

from project_lib import Project
project = Project()

# or:
project = Project.access()

Al seguente utilizzo ibm-watson-studio-lib:

from ibm_watson_studio_lib import access_project_or_space
credentials_dic={"project_id":'<ProjectId>', "token":'<ProjectToken>'}
wslib = access_project_or_space(params=credentials_dic)

Utilizzo della libreria

Le seguenti sezioni descrivono le modifiche di codice che è necessario apportare nei notebook quando le funzioni di migrazione in project-lib alle funzioni corrispondenti in ibm-watson-studio-lib.

Richie informazioni sul progetto

Per recuperare le informazioni relative al progetto programmaticamente è necessario modificare le seguenti funzioni:

Elenco connessioni dati

In codice che utilizza project-lib modifica:

project.get_connections()

Al seguente utilizzo ibm-watson-studio-lib:

assets = wslib.list_connections()
wslib.show(assets)

In alternativa, con ibm-watson-studio-lib, è possibile elencare gli asset di dati connessi:

assets = wslib.list_connected_data()
wslib.show(assets)

Elenco file di dati

Questa funzione restituisce l'elenco dei file di dati nel tuo progetto.

In codice che utilizza project-lib modifica utilizzando:

project.get_files()

Al seguente utilizzo ibm-watson-studio-lib:

assets = wslib.list_stored_data()
wslib.show(assets)

Porta nome o descrizione

In ibm-watson-studio-libè possibile richiamare eventuali metadati relativi al progetto, ad esempio il nome di un progetto o la sua descrizione, tramite l'entrypoint wslib.here.

In codice che utilizza project-lib modifica:

name = project.get_name()
desc = project.get_description()

Al seguente utilizzo ibm-watson-studio-lib:

name = wslib.here.get_name()
desc = wslib.here.get_description()

Ottieni metadati

Non c'è sostituzione per get_matadata in project-lib:

project.get_metadata()

La funzione wslib.here in ibm-watson-studio-lib espone parti di queste informazioni. Per vedere quali sono le informazioni sui metadati del progetto, utilizzare:

help(wslib.here.API)

Ad esempio:

  • wslib.here.get_name(): Restituisce il nome del progetto
  • wslib.here.get_description(): Restituisce la descrizione proejct
  • wslib.here.get_ID(): Restituisce l'ID del progetto
  • wslib.here.get_storage(): Restituisce i metadati dello storage

Ottii metadati di archiviazione

In codice che utilizza project-lib modifica:

project.get_storage_metadata()

Al seguente utilizzo ibm-watson-studio-lib:

wslib.here.get_storage()

Recupero dei dati

Per accedere ai dati in un file è necessario modificare le seguenti funzioni.

In codice che utilizza project-lib modifica:

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)

Al seguente utilizzo ibm-watson-studio-lib:

buffer = wslib.load_data("MyAssetName.csv")

Inoltre, ibm-watson-studio-lib offre una funzione per scaricare un asset di dati e memorizzarlo nel file system locale:

info = wslib.download_file("MyAssetName.csv", "MyLocalFile.csv")

Salva dati

Per salvare i dati in un file è necessario modificare le seguenti funzioni.

In codice utilizzando project-lib modifica (e per tutte le variazioni di direct_store=False e set_project_asset=True):

project.save_data("NewAssetName.csv", data)
project.save_data("MyAssetName.csv", data, overwrite=True)

Al seguente utilizzo 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)

Inoltre, ibm-watson-studio-lib offre una funzione per caricare un file locale nell'archivio dell'area di lavoro e creare un asset di dati:

asset = wslib.upload_file("MyLocalFile.csv", "MyAssetName.csv")
wslib.show(asset)

Richie informazioni di connessione

Per restituire i metadati associati ad una connessione è necessario modificare le seguenti funzioni.

In codice che utilizza project-lib modifica:

connprops = project.get_connection(name="MyConnection")

Al seguente utilizzo ibm-watson-studio-lib:

connprops = wslib.get_connection("MyConnection")

Richie informazioni sui dati connessi

Per restituire i metadati associati ad un asset di dati connesso, è necessario modificare le seguenti funzioni.

In codice che utilizza project-lib modifica:

dataprops = project.get_connected_data(name="MyConnectedData")

Al seguente utilizzo ibm-watson-studio-lib:

dataprops = wslib.get_connected_data("MyConnectedData")

Accesso asset per ID invece di nome

È possibile restituire i metadati di un asset di connessione o connesso accedendo all'asset tramite ID invece che per nome.

In project-lib modifica:

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

Al seguente utilizzo 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")

In project-libnon è possibile accedere ai file (asset dati memorizzati) per ID. Puoi farlo solo per nome. La libreria ibm-watson-studio-lib supporta l'accesso ai file per ID. Vedi Utilizzo di ibm - watson - studio - lib.

Recupera asset per tipo di asset

Quando si richiama l'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 in project-lib sono data_asset, connection e asset.

In codice che utilizza project-lib modifica:

project.get_assets()

# Or, for a supported asset type:
project.get_assets("<asset_type>")

# Or:
project.get_assets(asset_type="<asset_type>")

Al seguente utilizzo 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)

Per elencare i tipi di asset disponibili, utilizzare:

assettypes = wslib.assets.list_asset_types()
wslib.show(assettypes)

Supporto Spark

Per lavorare con Spark, è necessario modificare le funzioni che consentono il supporto di Spark e il recupero di URL in un file.

Imposta supporto Spark

Per configurare il supporto Spark:

In codice che utilizza project-lib modifica:

# Provide SparkContext during setup
from project_lib import Project
project = Project(sc,"<ProjectId>","<ProjectToken>")

Al seguente utilizzo 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)

Recuperare URL per accedere a un file da Spark

Per recuperare un URL per accedere a un file referenziato da una risorsa da Spark tramite Hadoop :

In codice che utilizza project-lib modifica:

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)

Al seguente utilizzo ibm-watson-studio-lib:

url = wslib.spark.get_data_url("MyAssetName.csv")

Ottenere il file URL da utilizzare con Spark

Recuperare un URL per accedere a un file referenziato da una risorsa da Spark tramite Hadoop.

In codice che utilizza project-lib modifica:

project.get_file_url("MyFileName.csv", direct_storage=True)
# or
project.get_file_url("MyFileName.csv", direct_os_retrieval=True)

Al seguente utilizzo ibm-watson-studio-lib:

wslib.spark.storage.get_data_url("MyFileName.csv")

Accedere alla memoria del progetto direttamente

È possibile richiamare i dati dalla memoria del progetto o salvare i dati sulla memoria del progetto senza sincronizzare gli asset del progetto.

Recupero dei dati

Per recuperare i dati dalla memoria del progetto:

In codice che utilizza project-lib modifica:

project.get_file("MyFileName.csv", direct_storage=True)

# Or:
project.get_file("MyFileName.csv", direct_os_retrieval=True)

Al seguente utilizzo ibm-watson-studio-lib:

wslib.storage.fetch_data("MyFileName.csv")

Salva dati

Per salvare i dati in un file nella memoria del progetto:

In codice che utilizza project-lib modifica:

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

Al seguente utilizzo ibm-watson-studio-lib:

wslib.storage.store_data("NewFileName.csv", data)

In codice che utilizza project-lib modifica:

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

Al seguente utilizzo ibm-watson-studio-lib:

wslib.storage.store_data("MyFileName.csv", data, overwrite=True)

Inoltre, ibm-watson-studio-lib fornisce una funzione per scaricare un file dalla memoria dell'area di lavoro al file system locale:

wslib.storage.download_file("MyStorageFile.csv", "MyLocalFile.csv")

È inoltre possibile registrare un file nell'archivio dell'area di lavoro come risorsa di dati utilizzando:

wslib.storage.register_asset("MyStorageFile.csv", "MyAssetName.csv")

Ulteriori informazioni

Per utilizzare la libreria ibm-watson-studio-lib per Python nei notebook, consultare ibm - watson - studio - lib per Python.