Migrazione da project - lib for Python a ibm - watson - studio - lib
La libreria ibm-watson-studio-lib
è il successore di project-lib library
. Anche se puoi ancora continuare a utilizzare l'API project-lib
nei tuoi notebook, dovresti pensare alla migrazione dei notebook esistenti per utilizzare la libreria ibm-watson-studio-lib
.
I vantaggi dell'utilizzo di ibm-watson-studio-lib
comprendono:
- L'API di esplorazione asset fornisce l'accesso in sola lettura a tutti i tipi di asset, non soltanto a quelli esplicitamente supportati dalla libreria.
ibm-watson-studio-lib
utilizza una convenzione di denominazione API costante che struttura 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 usare la libreria ibm-watson-studio-lib
.
Impostare la libreria
È necessario apportare le seguenti modifiche nei notebook esistenti per iniziare a utilizzare ibm-watson-studio-lib
:
Nel codice utilizzando project-lib
modificare:
from project_lib import Project
project = Project("<ProjectId>","<ProjectToken>")
A quanto segue utilizzando ibm-watson-studio-lib
:
from ibm_watson_studio_lib import access_project_or_space
wslib = access_project_or_space({"token":"<ProjectToken>"})
Configurare la libreria in ambienti Spark
Devi apportare le seguenti modifiche nei notebook esistenti per iniziare a utilizzare ibm-watson-studio-lib
in ambienti Spark.
Nel codice utilizzando project-lib
modificare:
from project_lib import Project
project = Project(sc,"<ProjectId>","<ProjectToken>")
A quanto segue utilizzando 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)
Utilizzo libreria
Le seguenti sezioni descrivono le modifiche del codice che devi apportare nei tuoi notebook quando migri funzioni in project-lib
alle corrispondenti funzioni in ibm-watson-studio-lib
.
Richiama informazioni sul progetto
Per recuperare le informazioni relative al progetto in modo programmatico, è necessario modificare le funzioni riportate di seguito:
Elenca connessioni dati
Nel codice utilizzando project-lib
modificare:
project.get_connections()
A quanto segue utilizzando 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)
Elenca file di dati
Questa funzione restituisce l'elenco dei file di dati nel progetto.
Nel codice che utilizza project-lib
modificare utilizzando:
project.get_files()
A quanto segue utilizzando ibm-watson-studio-lib
:
assets = wslib.list_stored_data()
wslib.show(assets)
Ottieni nome o descrizione
In ibm-watson-studio-lib
, è possibile richiamare qualsiasi metadati relativo al progetto, ad esempio il nome di un progetto o la relativa descrizione, tramite il punto di ingresso wslib.here
.
Nel codice utilizzando project-lib
modificare:
name = project.get_name()
desc = project.get_description()
A quanto segue utilizzando ibm-watson-studio-lib
:
name = wslib.here.get_name()
desc = wslib.here.get_description()
Ottieni metadati
Non esiste alcuna 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 visualizzare quali informazioni sui metadati del progetto sono disponibili, utilizzare:
help(wslib.here.API)
Ad esempio:
wslib.here.get_name()
: restituisce il nome del progettowslib.here.get_description()
: restituisce la descrizione del proejctwslib.here.get_ID()
: restituisce l'ID progettowslib.here.get_storage()
: restituisce i metadati di archiviazione
Ottieni metadati di memoria
Nel codice utilizzando project-lib
modificare:
project.get_storage_metadata()
A quanto segue utilizzando ibm-watson-studio-lib
:
wslib.here.get_storage()
Recupero dei dati
Per accedere ai dati in un file, è necessario modificare le funzioni riportate di seguito.
Nel codice utilizzando project-lib
modificare:
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)
A quanto segue utilizzando 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 filesystem locale:
info = wslib.download_file("MyAssetName.csv", "MyLocalFile.csv")
Salva dati
Per salvare i dati in un file, è necessario modificare le funzioni riportate di seguito.
Nel codice utilizzando project-lib
change (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)
A quanto segue utilizzando 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 del progetto e creare un asset di dati:
asset = wslib.upload_file("MyLocalFile.csv", "MyAssetName.csv")
wslib.show(asset)
Ottieni informazioni di connessione
Per restituire i metadati associati a un collegamento, è necessario modificare le funzioni riportate di seguito.
Nel codice utilizzando project-lib
modificare:
connprops = project.get_connection(name="MyConnection")
A quanto segue utilizzando ibm-watson-studio-lib
:
connprops = wslib.get_connection("MyConnection")
Ottieni informazioni sui dati connessi
Per restituire i metadati associati a un asset di dati connesso, è necessario modificare le funzioni riportate di seguito.
Nel codice utilizzando project-lib
modificare:
dataprops = project.get_connected_data(name="MyConnectedData")
A quanto segue utilizzando ibm-watson-studio-lib
:
dataprops = wslib.get_connected_data("MyConnectedData")
Accedi all'asset per ID invece che per nome
È possibile restituire i metadati di una connessione o di un asset di dati connesso accedendo all'asset per ID invece che per nome.
Nella modifica project-lib
:
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")
A quanto segue utilizzando 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-lib
, non è possibile accedere ai file (asset di dati memorizzati) per ID. È possibile farlo solo per nome. La libreria ibm-watson-studio-lib
supporta l'accesso ai file per ID. Consultare 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 facoltativo 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
.
Nel codice utilizzando project-lib
modificare:
project.get_assets()
# Or, for a supported asset type:
project.get_assets("<asset_type>")
# Or:
project.get_assets(asset_type="<asset_type>")
A quanto segue utilizzando 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 utilizzare Spark, devi modificare le funzioni che abilitano il supporto Spark e richiamare l'URL di un file.
Imposta supporto Spark
Per configurare il supporto Spark:
Nel codice utilizzando project-lib
modificare:
# Provide SparkContext during setup
from project_lib import Project
project = Project(sc,"<ProjectId>","<ProjectToken>")
A quanto segue utilizzando 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)
Richiama URL per accedere a un file da Spark
Per recuperare un URL per accedere a un file a cui fa riferimento un asset da Spark tramite Hadoop:
Nel codice utilizzando project-lib
modificare:
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)
A quanto segue utilizzando ibm-watson-studio-lib
:
url = wslib.spark.get_data_url("MyAssetName.csv")
Ottieni l'URL del file per l'utilizzo con Spark
Richiama un URL per accedere a un file a cui fa riferimento un asset da Spark tramite Hadoop.
Nel codice utilizzando project-lib
modificare:
project.get_file_url("MyFileName.csv", direct_storage=True)
# or
project.get_file_url("MyFileName.csv", direct_os_retrieval=True)
A quanto segue utilizzando ibm-watson-studio-lib
:
wslib.spark.storage.get_data_url("MyFileName.csv")
Accedi direttamente allo storage del progetto
È possibile recuperare i dati dall'archivio del progetto o salvare i dati nell'archivio del progetto senza sincronizzare gli asset del progetto.
Recupero dei dati
Per recuperare i dati dall'archivio progetti:
Nel codice utilizzando project-lib
modificare:
project.get_file("MyFileName.csv", direct_storage=True)
# Or:
project.get_file("MyFileName.csv", direct_os_retrieval=True)
A quanto segue utilizzando ibm-watson-studio-lib
:
wslib.storage.fetch_data("MyFileName.csv")
Salva dati
Per salvare i dati in un file nell'archivio progetti:
Nel codice utilizzando project-lib
modificare:
# 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)
A quanto segue utilizzando ibm-watson-studio-lib
:
wslib.storage.store_data("NewFileName.csv", data)
Nel codice utilizzando project-lib
modificare:
# 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)
A quanto segue utilizzando 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 dall'archivio del progetto nel filesystem locale:
wslib.storage.download_file("MyStorageFile.csv", "MyLocalFile.csv")
È anche possibile registrare un file nella memoria del progetto come asset 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, vedi ibm - watson - studio - lib for Python.
Argomento principale: Utilizzo di ibm - watson - studio - lib