project-lib para Python (en desuso)
Si necesita interactuar con los proyectos y activos de proyecto de Watson Studio desde un cuaderno, puede utilizar la biblioteca de project-lib para Python. La biblioteca es como una interfaz programática para un proyecto.
Utilizando la biblioteca project-lib para Python, puede acceder a metadatos y activos de proyecto, incluidos archivos y conexiones. La biblioteca también contiene funciones que simplifican la captura de los archivos asociados al proyecto.
La biblioteca project-lib para Python está en desuso y se ha sustituido por la biblioteca ibm-watson-studio-lib para Python. Aunque todavía puede utilizar la biblioteca project-lib , debe empezar a utilizar la biblioteca ibm-watson-studio-lib en los cuadernos. Consulte ibm-watson-studio-lib for Python.
Se elimina la biblioteca project-lib del tiempo de ejecución 25.1. En tiempos de ejecución más antiguos, project-lib sigue estando disponible.
-Las funciones de project-lib no codifican ni decodifican datos al guardar datos en un archivo u obtener datos de él.
-Las funciones de project-lib no se pueden utilizar para acceder a activos de carpeta conectados (archivos en una vía de acceso en Cloud Object Storage).
Las funciones de project-lib
El objeto de proyecto instanciado que se crea después de haber importado la biblioteca project-lib expone un conjunto de funciones que se agrupan de la siguiente manera:
- Capturar información del proyecto
- Capturar archivos
- Guardar datos
- Leer datos de una conexión
- Capturar datos conectados
Capturar información del proyecto
Puede utilizar las funciones siguientes para capturar la información relacionada con el proyecto de forma programada:
get_name()Esta función devuelve el nombre del proyecto.
get_description()Esta función devuelve la descripción del proyecto.
get_metadata()Esta función devuelve los metadatos del proyecto.
get_files()Esta función devuelve la lista de archivos del proyecto. Cada elemento de la lista devuelta contiene el ID y el nombre del archivo. La lista de archivos devueltos no se clasifica bajo ningún criterio y puede cambiar cuando vuelva a invocar la función.
get_assets()Esta función devuelve una lista de todos los activos del proyecto. Puede pasar el parámetro opcional
asset_typea la funciónget_assetsque le permite filtrar activos por tipo. Los valores aceptados para este parámetro sondata_asset,connectionyasset. El valorassetdevuelve todos los activos del proyecto. Por ejemplo, para obtener sólo los activos de datos, utilice la funciónget_assets("data_asset").get_connections()Esta función devuelve una lista de las conexiones que tiene en el proyecto. Cada elemento de la lista devuelta contiene el ID y el nombre de la conexión.
Capturar archivos
Puede utilizar la función siguiente para capturar los archivos asociados al proyecto.
get_file(file_name)dondefile_namees el nombre del archivo que desea captar.Esta función captura un archivo en la memoria del kernel que está en ejecución. La función devuelve un almacenamiento intermedio de bytes que se puede utilizar para enlazar con las estructuras de datos específicas del kernel, por ejemplo, un DataFrame de pandas. Este método de captura de archivos no se recomienda para archivos muy grandes.
El ejemplo siguiente le muestra cómo capturar un archivo y leer los datos en un DataFrame pandas:
# Import the lib from project_lib import Project project = Project.access() # Fetch the file my_file = project.get_file("myFile.csv") # Read the CSV data file into a pandas DataFrame my_file.seek(0) import pandas as pd pd.read_csv(my_file, nrows=10)
Guardar datos
Puede utilizar la función siguiente para guardar datos en un archivo asociado al proyecto. Esta función realiza muchas cosas. En primer lugar, coloca los datos en un archivo y, a continuación, añade un activo de datos a su proyecto, de modo que puede ver los datos que ha guardado como un archivo en la lista de activos del proyecto.
save_data(file_name, data, set_project_asset=True, overwrite=False)
La función toma los parámetros siguientes:
file_name: el nombre del archivo creado.data: los datos a subir. Puede ser cualquier objeto de tipofile-like-object, por ejemplo, almacenamientos intermedios de bytes o almacenamientos intermedios de serie.Nota: No se permite que los datos a cargar superen los 2 GB de tamaño.set_project_asset[optional]: Añade el archivo al proyecto como un activo de datos después de que se hayan cargado correctamente en el archivo. Toma un valor booleano y, de forma predeterminada, el valor se establece en true.overwrite[optional]: Sobrescribe el archivo si ya existe el archivo. De forma predeterminada, se establece en false.
El siguiente es un ejemplo que muestra cómo puede guardar datos en un archivo:
# Import the lib
from project_lib import Project
project = Project.access()
# let's assume you have the pandas DataFrame pandas_df which contains the data
# you want to save 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 and file_name
# upon successful saving of the data
Leer datos desde una conexión
Puede utilizar la función siguiente para capturar los metadatos (credenciales) de una conexión específica.
get_connection: la función toma como entrada el ID de la conexión o el nombre de la conexión. Puede obtener estos valores utilizando la función get_assets() que devuelve id, name y type de todos los activos listados en el proyecto.
La función get_connection devuelve las credenciales de conexión que puede utilizar para captar datos del origen de datos de conexión.
A continuación se muestra un ejemplo, que muestra cómo puede captar las credenciales de una conexión utilizando la función get_connection:
# Import the lib
from project_lib import Project
project = Project.access()
conn_creds = project.get_connection(name="<ConnectionName>")
Si su conexión es una conexión con dashDB, por ejemplo, puede capturar los datos ejecutando el código siguiente:
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()
Capturar datos conectados
Puede utilizar la función siguiente para capturar las credenciales de los datos conectados. La función devuelve un diccionario que contiene las credenciales de conexión además de un atributo datapath que apunta a datos específicos de esa conexión, por ejemplo, una tabla en una instancia de dashDB o una base de datos en una instancia de Cloudant.
get_connected_data: esta función toma como entrada el ID de los datos conectados o el nombre de los datos conectados. Puede obtener estos valores utilizando la función get_assets() que devuelve id, name y type de todos los activos listados en el proyecto.
A continuación se muestra un ejemplo, que muestra cómo capturar las credenciales de los datos conectados en una instancia de dashDB utilizando la función get_connected_data:
# Import the lib
from project_lib import Project
project = Project.access()
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, for example:
# creds: {'database': 'DB_NAME',
# 'datapath': '/DASHDB/SAMPLE_TABLE',
# 'host': 'hostname',
# 'password': 'XXXX',
# 'sg_service_url': 'https://sgmanager.ng.bluemix.net',
# 'username': 'XXXX'}
Más información
Vea una demostración de estas funciones en una entrada de blog.