project-lib para R (obsoleto)
Se você precisar interagir com os projetos do watsonx.ai Studio e com os ativos do projeto a partir de um notebook, poderá usar a biblioteca ' project-lib para R. A biblioteca é como uma interface programática para um projeto.
Ao utilizar a biblioteca project-lib para R, é possível acessar metadados do projeto e ativos, incluindo arquivos e conexões. A biblioteca também contém funções que simplificam a busca de arquivos associados ao projeto.
A biblioteca project-lib para R está obsoleta e foi substituída pela biblioteca ibm-watson-studio-lib para R. Embora ainda possa usar a biblioteca project-lib , você deve começar a usar a biblioteca ibm-watson-studio-lib em seus notebooks. Consulte ibm-watson-studio-lib para R.
A biblioteca project-lib é removida do tempo de execução 25.1. Em tempos de execução mais antigos, o site project-lib permanece disponível.
-As funções project-lib não codificam ou decodificam dados ao salvar dados ou obter dados de um arquivo.
-As funções project-lib não podem ser usadas para acessar ativos de pasta conectados (arquivos em um caminho no Cloud Object Storage).
Usar a biblioteca
A biblioteca project-lib para R é pré-instalada e pode ser importada diretamente em um notebook no editor de notebook. Para usar a biblioteca do project-lib em seu bloco de notas, são necessários o ID e o token do projeto.
Para inserir o token do projeto em seu bloco de notas:
Clique no ícone Mais da sua barra de ferramentas do bloco de notas e, em seguida, clique em Inserir token do projeto.
Se existir um token do projeto, uma célula será incluída em seu bloco de notas com as informações a seguir:
library(projectLib) project <- projectLib::Project$new(sc, "<ProjectId>", "<ProjectToken>")scé o contexto do Spark se o Spark for usado.<ProjectId>é o ID de seu projeto e<ProjectToken>é o valor do token do projeto.Se você receber uma mensagem informando que nenhum token do projeto existe, clique no link na mensagem para que seja redirecionado para a página Controle de acesso do projeto na qual é possível criar um token do projeto. Deve-se ser elegível para criar um token do projeto. Para obter detalhes, consulte Incluindo manualmente o token do projeto.
Para criar um token do projeto:
- Na guia Gerenciar, selecione a página Controle de acesso e clique em Novo token de acesso em Tokens de acesso.
- Insira um nome, selecione a função Editor para o projeto e crie um token.
- Volte para o seu bloco de notas, clique no ícone Mais na barra de ferramentas do bloco de notas e, em seguida, clique em Inserir token do projeto.
As funções do project-lib
O objeto do projeto instanciado que é criado após você ter importado a biblioteca do project-lib expõe um conjunto de funções que são agrupadas da seguinte maneira:
- Buscar informações sobre o projeto
- Buscar arquivos
- Salvar dados
- Ler dados de uma conexão
- Buscar dados conectados
Buscar informações sobre o projeto
É possível usar as funções a seguir para buscar informações relacionadas ao projeto programaticamente.
get_name()Essa função retorna o nome do projeto.
get_description()Essa função retorna a descrição do projeto.
get_metadata()Essa função retorna os metadados do projeto;
get_storage_metadata()Essa função retorna os metadados do armazenamento de objetos associado ao projeto.
get_project_bucket_name()Esta função retorna o nome do depósito do projeto no armazenamento de objeto associado. Todos os arquivos de projeto estão armazenados nesse depósito.
get_files()Esta função retorna uma lista dos arquivos em seu projeto. Cada elemento na lista retornada contém o ID e o nome do arquivo. A lista de arquivos retornados não é classificada por nenhum critério e poderá mudar quando você chamar a função novamente.
get_assets()Essa função retorna uma lista de todos os ativos de projeto. É possível transmitir o parâmetro opcional
assetTypepara a funçãoget_assetsque permite filtrar ativos por tipo. Os valores aceitos para este parâmetro sãodata_asset,connectioneasset. O valorassetretorna todos os ativos em seu projeto. Por exemplo, para obter apenas os ativos de dados, use a funçãoget_assets("data_asset").get_connections()Essa função retorna uma lista das conexões que você tem em seu projeto. Cada elemento na lista retornada contém o ID e o nome da conexão.
Buscar arquivos
É possível usar as funções a seguir para buscar arquivos armazenados no armazenamento de objetos associado ao seu projeto.
É possível buscar arquivos de duas maneiras:
get_file_url(filename)em quefilenameé o nome do arquivo que você deseja buscar.Esta função retorna a URL para buscar um arquivo do armazenamento de objeto usando o Spark. A URL é construída com base no tipo de armazenamento de objeto associado ao projeto. As configurações do Hadoop são definidas automaticamente quando você interage com o armazenamento de objetos do seu projeto.
O exemplo a seguir mostra como usar essa função para buscar dados do armazenamento de objetos usando o 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)em quefilenameé o nome do arquivo que você deseja buscar.Essa função busca um arquivo na memória do kernel em execução. A função retorna um buffer de byte que pode ser usado para ligar-se a estruturas de dados específicas do kernel, por exemplo, um quadro de dados do R. Esse método de busca de arquivos não é recomendado para arquivos muitos grandes.
O exemplo a seguir mostra como buscar um arquivo e ler os dados em um quadro de dados do 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)
Salvar dados
É possível usar a função a seguir para salvar dados no armazenamento de objeto associado ao seu projeto. Os dados serão incluídos como um arquivo no depósito do projeto no Cloud Object Storage associado. Essa função faz diversas coisas. Em primeiro lugar, ele coloca os dados no armazenamento de objetos e, em seguida, os inclui como um ativo de dados em seu projeto para que seja possível ver os dados que você salvou como um arquivo na lista de ativos de dados em seu projeto.
save_data(filename, data, setProjectAsset=TRUE, overwrite=FALSE)
A função assume os parâmetros a seguir:
filename: o nome do arquivo criado.data: os dados para upload. Os tipos aceitos para esse parâmetro são objetos brutos R ou buffers de sequência.setProjectAsset[optional]: inclui o arquivo no projeto como um ativo de dados depois que os dados são transferidos por upload com sucesso para o Object Storage. Assume um valor booleano e o valor true é configurado por padrão.overwrite[optional]: sobrescreve o arquivo caso o arquivo já exista no Object Storage ou no projeto. Por padrão, ele é definido como falso.
Aqui está um exemplo, que mostra como é possível salvar dados em um arquivo no armazenamento 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)
Ler dados de uma conexão
É possível usar a função a seguir para obter os metadados (credenciais) de uma determinada conexão.
get_connection: a função utiliza como entrada o ID ou o nome da conexão. É possível obter esses valores usando a função get_assets() que retorna o id, name e type de todos os ativos listados no projeto.
A função get_connection retorna as credenciais de conexão que você pode usar para buscar dados a partir da origem de dados de conexão.
A seguir há um exemplo que mostra como é possível buscar as credenciais de uma conexão usando a função get_connection:
# Import project lib
library(projectLib)
project <- projectLib::Project$new(sc , "<ProjectId>", "<ProjectToken>")
# Fetch connection
conn.cred <- project$get_connection(name="<ConnectionName>")
Se sua conexão for uma conexão com o dashDB, por exemplo, será possível buscar seus dados executando o código a seguir:
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)
Buscar dados conectados
É possível usar a função a seguir para buscar as credenciais de dados conectados. A função retorna um dicionário que contém as credenciais de conexão, além de um atributo do datapath que aponta para dados específicos nessa conexão, como, por exemplo, uma tabela em uma instância dashDB ou um banco de dados em uma instância Cloudant.
get_connected_data: essa função utiliza como entrada o ID ou o nome dos dados conectados. É possível obter esses valores usando a função get_assets() que retorna o id, name e type de todos os ativos listados no projeto.
A seguir há um exemplo que mostra como buscar as credenciais dos dados conectados em uma instância dashDB usando a função 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>")