Migración de project-lib para Python a ibm-watson-studio-lib
La biblioteca
es el sucesor de ibm-watson-studio-lib
. Aunque todavía puede seguir utilizando la API de project-lib library
en sus cuadernos, ha quedado obsoleta y debería pensar en migrar los cuadernos existentes para utilizar la biblioteca de project-lib
.ibm-watson-studio-lib
Las ventajas de utilizar
incluyen:ibm-watson-studio-lib
- 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.
utiliza un convenio de denominación de API de constistent que estructura las funciones disponibles de acuerdo con su área de aplicación.ibm-watson-studio-lib
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
en entornos Spark.ibm-watson-studio-lib
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
a las funciones correspondientes en project-lib
.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
, puede listar los activos de datos conectados:ibm-watson-studio-lib
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
, cambie utilizando:project-lib
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
, 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 ibm-watson-studio-lib
.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
en get_matadata
:project-lib
project.get_metadata()
La función
en wslib.here
expone partes de esta información. Para ver qué información de metadatos de proyecto está disponible, utilice:ibm-watson-studio-lib
help(wslib.here.API)
Por ejemplo:
: devuelve el nombre del proyectowslib.here.get_name()
: devuelve la descripción del proyectowslib.here.get_description()
: devuelve el ID de proyectowslib.here.get_ID()
: devuelve los metadatos de almacenamientowslib.here.get_storage()
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,
ofrece una función para descargar un elemento de datos y almacenarlo en el sistema de archivos local:ibm-watson-studio-lib
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
(y para todas las variaciones de project-lib
y direct_store=False
):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,
ofrece una función para cargar un archivo local en el almacenamiento del proyecto y crear un activo de datos:ibm-watson-studio-lib
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
, no es posible acceder a los archivos (activos de datos almacenados) por ID. Sólo puede hacerlo por su nombre. La biblioteca project-lib
da soporte al acceso a archivos por ID. Consulte Utilización de ibm-watson-studio-lib.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
a la función asset_type
que le permite filtrar activos por tipo. Los valores aceptados para este parámetro en get_assets
son project-lib
, data_asset
y connection
.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 la compatibilidad con Spark y la recuperación de la información de configuración ( URL ) a 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 de Spark
Para recuperar un archivo ( 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")
Obtenga el archivo URL para utilizarlo con Spark
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
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,
proporciona una función para descargar un archivo desde el almacenamiento del proyecto al sistema de archivos local:ibm-watson-studio-lib
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
para Python en los cuadernos, consulte ibm-watson-studio-lib para Python.ibm-watson-studio-lib
Tema padre: Utilización de ibm-watson-studio-lib