Si necesitas interactuar con tus proyectos de watsonx.ai Studio y los activos del proyecto desde un bloc de notas, puedes utilizar la biblioteca ' project-lib
' para R. La biblioteca es como una interfaz programática para un proyecto.
Utilizando la biblioteca project-lib
para R, puede acceder a los metadatos y activos del proyecto, incluidos los archivos y las conexiones. La biblioteca también contiene funciones que simplifican la captura de los archivos asociados al proyecto.
-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).
Utilizar la biblioteca
La biblioteca project-lib
para R está preinstalada y se puede importar directamente en un cuaderno en el editor de cuadernos. Para utilizar la biblioteca project-lib
en el cuaderno, necesita el ID del proyecto y la señal del proyecto.
Para insertar la señal del proyecto en el cuaderno:
Pulse el icono Más de la barra de herramientas del cuaderno y, a continuación, pulse Insertar señal de proyecto.
Si existe una señal de proyecto, se añade una celda al cuaderno con la información siguiente:
library(projectLib) project <- projectLib::Project$new(sc, "<ProjectId>", "<ProjectToken>")
sc
es el contexto de Spark si se utiliza Spark.<ProjectId>
es el ID del proyecto y<ProjectToken>
es el valor de la señal del proyecto.Si se le indica en un mensaje que no existe ninguna señal de proyecto, pulse el enlace del mensaje que se va a redireccionar a la página Control de acceso del proyecto donde puede crear una señal de proyecto. Debe ser elegible para crear una señal de proyecto. Para obtener detalles, consulte Adición manual de la señal de proyecto.
Para crear una señal de proyecto:
- En la pestaña Gestionar, seleccione la página Control de acceso y pulse Nueva señal de acceso en Señales de acceso.
- Especifique un nombre, seleccione el rol Editor para el proyecto y cree una señal.
- Vuelva al cuaderno, pulse el icono Más de la barra de herramientas del cuaderno y, a continuación, pulse Insertar señal de proyecto.
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_storage_metadata()
Esta función devuelve los metadatos del almacenamiento de objetos asociado al proyecto.
get_project_bucket_name()
Esta función devuelve el nombre de grupo de proyecto en el almacenamiento de objetos asociado. Todos los archivos de proyecto se almacenan en este grupo.
get_files()
Esta función devuelve una lista de los 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
assetType
a la funciónget_assets
que le permite filtrar activos por tipo. Los valores aceptados para este parámetro sondata_asset
,connection
yasset
. El valorasset
devuelve 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 las siguientes funciones para capturar los archivos almacenados en el almacenamiento de objetos asociado al proyecto.
Puede capturar archivos de dos formas:
get_file_url(filename)
dondefilename
es el nombre del archivo que desea captar.Esta función devuelve el URL para capturar un archivo del almacenamiento de objetos utilizando Spark. El URL se construye en base al tipo de almacenamiento de objetos asociado al proyecto. Las configuraciones de Hadoop se configuran automáticamente cuando interactúa con el almacenamiento de objetos del proyecto.
El siguiente ejemplo muestra como utilizar esta función para capturar datos del almacenamiento de objetos utilizando Spark:
# Import the lib library(projectLib) project <- projectLib::Project$new(sc, "<ProjectId>", "<ProjectToken>") # Get the url url <- project$get_file_url("myFile.csv") # Fetch the CSV file from the object storage using Spark invisible(sparkR.session(appName = "SparkSession R")) df.data <- read.df( url, source = "org.apache.spark.sql.execution.datasources.csv.CSVFileFormat", header = "true") head(df.data)
get_file(filename)
dondefilename
es 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 marco de datos R. 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 marco de datos R:
# Import project lib library(projectLib) project <- projectLib::Project$new(sc , "<ProjectId>", "<ProjectToken>") # Fetch data my.file <- project$get_file("my_file.csv") # Read the CSV data file into a data frame df.data <- read.csv(text = rawToChar(my.file)) head(df.data)
Guardar datos
Puede utilizar la función siguiente para guardar datos en un almacenamiento de objetos asociado al proyecto. Los datos se añadirán como un archivo al grupo de proyectos en el Cloud Object Storage asociado. Esta función realiza muchas cosas. En primer lugar, coloca los datos en un almacenamiento de objetos 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(filename, data, setProjectAsset=TRUE, overwrite=FALSE)
La función toma los parámetros siguientes:
filename
: el nombre del archivo creado.data
: los datos a subir. Los tipos aceptados para este parámetro son objetos R sin formato o almacenamientos intermedios de series.setProjectAsset[optional]
: añade el archivo al proyecto como un activo de datos después de que los datos se hayan cargado satisfactoriamente en el almacenamiento de objetos. Toma un valor booleano y, de forma predeterminada, el valor se establece en true.overwrite[optional]
: sobrescribe el archivo, si el archivo ya existe en el almacenamiento de objetos o en el proyecto. De forma predeterminada, se establece en false.
El siguiente es un ejemplo que muestra cómo puede guardar datos en un archivo en el almacenamiento de objetos:
library("projectLib")
project <- access_project()
# Capture CSV data from console output
csv_lines <- capture.output(write.csv(df.data, row.names=FALSE), type="output")
csv_raw <- charToRaw(paste0(csv_lines, collapse='\n'))
project$save_data("file.csv", csv_raw)
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 project lib
library(projectLib)
project <- projectLib::Project$new(sc , "<ProjectId>", "<ProjectToken>")
# Fetch connection
conn.cred <- 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:
library(ibmdbR)
props <- paste("DASHDB;DATABASE=BLUDB;HOSTNAME=", conn.cred$host, ";PORT=50000;PROTOCOL=TCPIP;", sep="")
conn <- idaConnect(props, uid = conn.cred$username, pwd = conn.cred$password, conType = "odbc")
idaInit(conn)
idf.1 <- ida.data.frame('<TableName>')
head(idf.1)
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 project lib
library(projectLib)
project <- projectLib::Project$new(sc , "<ProjectId>", "<ProjectToken>")
# Fetch credentials of the connected data
conn.data <- project$get_connected_data(id="<ConnectedDataId>")
Tema principal: Carga y acceso a los datos en un cuaderno