La biblioteca ibm-watson-studio-lib
es el sucesor de project-lib library
. Aunque todavía puede seguir utilizando la API de project-lib
en los cuadernos, debe pensar en migrar los cuadernos existentes para utilizar la biblioteca ibm-watson-studio-lib
.
Las ventajas de utilizar ibm-watson-studio-lib
incluyen:
- La API de examen de activos proporciona acceso de sólo lectura a todos los tipos de activos, no sólo a los que admite explícitamente la biblioteca.
ibm-watson-studio-lib
utiliza un convenio de denominación de API de constistent que estructura las funciones disponibles de acuerdo con su área de aplicación.
En las secciones siguientes se describen los cambios que debe realizar en los cuadernos Python existentes para empezar a utilizar la biblioteca ibm-watson-studio-lib
.
Configurar la biblioteca
Es necesario realizar los cambios siguientes en los cuadernos existentes para empezar a utilizar ibm-watson-studio-lib
:
En el código utilizando el cambio project-lib
:
from project_lib import Project
project = Project("<ProjectId>","<ProjectToken>")
A lo siguiente utilizando ibm-watson-studio-lib
:
from ibm_watson_studio_lib import access_project_or_space
wslib = access_project_or_space({"token":"<ProjectToken>"})
Configurar la biblioteca en entornos Spark
Debe realizar los cambios siguientes en los cuadernos existentes para empezar a utilizar ibm-watson-studio-lib
en entornos Spark.
En el código utilizando el cambio project-lib
:
from project_lib import Project
project = Project(sc,"<ProjectId>","<ProjectToken>")
A lo siguiente utilizando 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)
Uso de biblioteca
En las secciones siguientes se describen los cambios de código que debe realizar en los cuadernos al migrar funciones en project-lib
a las funciones correspondientes en ibm-watson-studio-lib
.
Obtener información de proyecto
Para captar la información relacionada con el proyecto mediante programación, debe cambiar las funciones siguientes:
Listar conexiones de datos
En el código utilizando el cambio project-lib
:
project.get_connections()
A lo siguiente utilizando ibm-watson-studio-lib
:
assets = wslib.list_connections()
wslib.show(assets)
De forma alternativa, con ibm-watson-studio-lib
, puede listar los activos de datos conectados:
assets = wslib.list_connected_data()
wslib.show(assets)
Listar archivos de datos
Esta función devuelve la lista de los archivos de datos del proyecto.
En el código que utiliza project-lib
, cambie utilizando:
project.get_files()
A lo siguiente utilizando ibm-watson-studio-lib
:
assets = wslib.list_stored_data()
wslib.show(assets)
Obtener nombre o descripción
En ibm-watson-studio-lib
, puede recuperar cualquier metadatos sobre el proyecto, por ejemplo, el nombre de un proyecto o su descripción, a través del punto de entrada wslib.here
.
En el código utilizando el cambio project-lib
:
name = project.get_name()
desc = project.get_description()
A lo siguiente utilizando ibm-watson-studio-lib
:
name = wslib.here.get_name()
desc = wslib.here.get_description()
Obtener metadatos
No hay sustitución para get_matadata
en project-lib
:
project.get_metadata()
La función wslib.here
en ibm-watson-studio-lib
expone partes de esta información. Para ver qué información de metadatos de proyecto está disponible, utilice:
help(wslib.here.API)
Por ejemplo:
wslib.here.get_name()
: devuelve el nombre del proyectowslib.here.get_description()
: devuelve la descripción del proyectowslib.here.get_ID()
: devuelve el ID de proyectowslib.here.get_storage()
: devuelve los metadatos de almacenamiento
Obtener metadatos de almacenamiento
En el código utilizando el cambio project-lib
:
project.get_storage_metadata()
A lo siguiente utilizando ibm-watson-studio-lib
:
wslib.here.get_storage()
Captar datos
Para acceder a los datos de un archivo, debe cambiar las funciones siguientes.
En el código utilizando el cambio project-lib
:
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 lo siguiente utilizando ibm-watson-studio-lib
:
buffer = wslib.load_data("MyAssetName.csv")
Además, ibm-watson-studio-lib
ofrece una función para descargar un elemento de datos y almacenarlo en el sistema de archivos local:
info = wslib.download_file("MyAssetName.csv", "MyLocalFile.csv")
Guardar datos
Para guardar datos en un archivo, debe cambiar las funciones siguientes.
En el código que utiliza el cambio project-lib
(y para todas las variaciones de direct_store=False
y set_project_asset=True
):
project.save_data("NewAssetName.csv", data)
project.save_data("MyAssetName.csv", data, overwrite=True)
A lo siguiente utilizando 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)
Además, ibm-watson-studio-lib
ofrece una función para cargar un archivo local en el almacenamiento del proyecto y crear un activo de datos:
asset = wslib.upload_file("MyLocalFile.csv", "MyAssetName.csv")
wslib.show(asset)
Obtener información de conexión
Para devolver los metadatos asociados a una conexión, debe cambiar las funciones siguientes.
En el código utilizando el cambio project-lib
:
connprops = project.get_connection(name="MyConnection")
A lo siguiente utilizando ibm-watson-studio-lib
:
connprops = wslib.get_connection("MyConnection")
Obtener información de datos conectados
Para devolver los metadatos asociados a un activo de datos conectado, debe cambiar las funciones siguientes.
En el código utilizando el cambio project-lib
:
dataprops = project.get_connected_data(name="MyConnectedData")
A lo siguiente utilizando ibm-watson-studio-lib
:
dataprops = wslib.get_connected_data("MyConnectedData")
Acceder al activo por ID en lugar de por nombre
Puede devolver los metadatos de una conexión o un activo de datos conectado accediendo al activo por ID en lugar de por nombre.
En cambio de 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 lo siguiente utilizando 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")
En project-lib
, no es posible acceder a los archivos (activos de datos almacenados) por ID. Sólo puede hacerlo por su nombre. La biblioteca ibm-watson-studio-lib
da soporte al acceso a archivos por ID. Consulte Utilización de ibm-watson-studio-lib.
Captar activos por tipo de activo
Al recuperar la lista de todos los activos de proyecto, puede pasar el parámetro opcional asset_type
a la función get_assets
que le permite filtrar activos por tipo. Los valores aceptados para este parámetro en project-lib
son data_asset
, connection
y asset
.
En el código utilizando el cambio project-lib
:
project.get_assets()
# Or, for a supported asset type:
project.get_assets("<asset_type>")
# Or:
project.get_assets(asset_type="<asset_type>")
A lo siguiente utilizando 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)
Para listar los tipos de activos disponibles, utilice:
assettypes = wslib.assets.list_asset_types()
wslib.show(assettypes)
Soporte de Spark
Para trabajar con Spark, debe cambiar las funciones que habilitan el soporte de Spark y recuperar el URL en un archivo.
Configurar soporte de Spark
Para configurar el soporte de Spark:
En el código utilizando el cambio project-lib
:
# Provide SparkContext during setup
from project_lib import Project
project = Project(sc,"<ProjectId>","<ProjectToken>")
A lo siguiente utilizando 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)
Recuperar URL para acceder a un archivo desde Spark
Para recuperar un URL para acceder a un archivo al que hace referencia un activo de Spark a través de Hadoop:
En el código utilizando el cambio project-lib
:
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 lo siguiente utilizando ibm-watson-studio-lib
:
url = wslib.spark.get_data_url("MyAssetName.csv")
Obtener URL de archivo para su uso con Spark
Recupere un URL para acceder a un archivo al que hace referencia un activo desde Spark a través de Hadoop.
En el código utilizando el cambio project-lib
:
project.get_file_url("MyFileName.csv", direct_storage=True)
# or
project.get_file_url("MyFileName.csv", direct_os_retrieval=True)
A lo siguiente utilizando ibm-watson-studio-lib
:
wslib.spark.storage.get_data_url("MyFileName.csv")
Acceder directamente al almacenamiento del proyecto
Puede captar datos del almacenamiento del proyecto o guardar datos en el almacenamiento del proyecto sin sincronizar los activos del proyecto.
Captar datos
Para captar datos del almacenamiento del proyecto:
En el código utilizando el cambio project-lib
:
project.get_file("MyFileName.csv", direct_storage=True)
# Or:
project.get_file("MyFileName.csv", direct_os_retrieval=True)
A lo siguiente utilizando ibm-watson-studio-lib
:
wslib.storage.fetch_data("MyFileName.csv")
Guardar datos
Para guardar datos en un archivo en el almacenamiento del proyecto:
En el código utilizando el cambio project-lib
:
# 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 lo siguiente utilizando ibm-watson-studio-lib
:
wslib.storage.store_data("NewFileName.csv", data)
En el código utilizando el cambio project-lib
:
# 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 lo siguiente utilizando ibm-watson-studio-lib
:
wslib.storage.store_data("MyFileName.csv", data, overwrite=True)
Además, ibm-watson-studio-lib
proporciona una función para descargar un archivo desde el almacenamiento del proyecto al sistema de archivos local:
wslib.storage.download_file("MyStorageFile.csv", "MyLocalFile.csv")
También puede registrar un archivo en el almacenamiento del proyecto como activo de datos utilizando:
wslib.storage.register_asset("MyStorageFile.csv", "MyAssetName.csv")
Más información
Para utilizar la biblioteca de ibm-watson-studio-lib
para Python en los cuadernos, consulte ibm-watson-studio-lib para Python.
Tema padre: Utilización de ibm-watson-studio-lib