Migrando do projeto-lib para R para o ibm-watson-studio-lib

A biblioteca ibm-watson-studio-lib é a sucessora do project-lib library. Embora você ainda possa continuar a usar a API project-lib em seus notebooks, ela foi descontinuada e você deve pensar em migrar os notebooks existentes para usar a biblioteca ibm-watson-studio-lib .

Nota:

A biblioteca project-lib foi removida do novo tempo de execução 25.1. Em tempos de execução mais antigos, o site project-lib permanece disponível.

Vantagens de usar ibm-watson-studio-lib incluem:

  • A API de navegação de ativos fornece acesso de leitura a todos os tipos de ativos, não apenas aqueles explicitamente suportados pela biblioteca.
  • ibm-watson-studio-lib usa uma convenção de nomenclatura API constistente que estrutura as funções disponíveis de acordo com sua área de aplicação.

As seções a seguir descrevem as alterações que você precisa fazer nos notebooks R existentes para começar a usar a ibm-watson-studio-lib biblioteca.

Configurar a biblioteca

Você precisa fazer as seguintes mudanças em notebooks existentes para começar a usar ibm-watson-studio-lib:

Em código usando project-lib mudança:

library(projectLib)
project <- projectLib::Project$new("<ProjectId>", "ProjectToken")

Para o seguinte usando ibm-watson-studio-lib:

library(ibmWatsonStudioLib)
wslib <- access_project_or_space(list("token" = "ProjectToken"))

Configurar a biblioteca em ambientes Spark

Você precisa fazer as seguintes mudanças em notebooks existentes para começar a usar ibm-watson-studio-libem ambientes Spark.

Em código usando project-lib mudança:

library(projectLib)
project <- projectLib::Project$new(sc, "<ProjectId>", "ProjectToken")

Para o seguinte usando ibm-watson-studio-lib:

library(ibmWatsonStudioLib)
wslib <- access_project_or_space(list("token" = "ProjectToken"))
wslib$spark$provide_spark_context(sc)

Uso da biblioteca

As seções a seguir descrevem as alterações de código que você precisa fazer em seus notebooks ao migrar funções em project-lib para as funções correspondentes em ibm-watson-studio-lib.

Obter informações do projeto

Para buscar informações relacionadas ao projeto programaticamente, é necessário alterar as seguintes funções:

Listar conexões de dados

Em código usando project-lib mudança:

project$get_connections()

Para o seguinte usando ibm-watson-studio-lib:

assets <- wslib$list_connections()
wslib$show(assets)

Alternativamente, com ibm-watson-studio-lib, é possível listar ativos de dados conectados:

assets <- wslib$list_connected_data()
wslib$show(assets)

Listar arquivos de dados

Esta função retorna a lista dos arquivos de dados em seu projeto.

Em código usando project-lib mudança usando:

project$get_files()

Para o seguinte usando ibm-watson-studio-lib:

assets <- wslib$list_stored_data()
wslib$show(assets)

Obter nome ou descrição

Em ibm-watson-studio-lib, é possível recuperar quaisquer metadados sobre o projeto, como por exemplo o nome de um projeto ou sua descrição, via o entrypoint wslib.here.

Em código usando project-lib mudança:

name <- project$get_name()
desc <- project$get_description()

Para o seguinte usando ibm-watson-studio-lib:

name <- wslib$here$get_name()
desc <- wslib$here$get_description()

Obter Metadados

Não há substituição para get_matadata em project-lib:

project$get_metadata()

A função wslib$here em ibm-watson-studio-lib expõe partes dessas informações. As seguintes funções estão disponíveis em wslib$here:

  • wslib$here$get_name(): Retorna o nome do projeto
  • wslib$here$get_description(): Retorna a descrição do proejto
  • wslib$here$get_ID(): Retorna o ID do projeto
  • wslib$here$get_storage(): Retorna os metadados de armazenamento

Obter metadados de armazenamento

Em código usando project-lib mudança:

project$get_storage_metadata()

Para o seguinte usando ibm-watson-studio-lib:

wslib$here$get_storage()

Buscar dados

Para acessar dados em um arquivo, é necessário alterar as funções a seguir.

Em código usando project-lib mudança:

buffer <- project$get_file("MyAssetName.csv")

# or, without direct storage access:
buffer <- project$get_file("MyAssetName.csv", directStorage=FALSE)

# or:
buffer <- project$get_file("MyAssetName.csv", directOsRetrieval=FALSE)

Para o seguinte usando ibm-watson-studio-lib:

buffer <- wslib$load_data("MyAssetName.csv")

Adicionalmente, ibm-watson-studio-lib oferece uma função para baixar um ativo de dados e armazená-lo no sistema de arquivos local:

info <- wslib$download_file("MyAssetName.csv", "MyLocalFile.csv")

Salvar dados

Para salvar dados em um arquivo, é necessário alterar as funções a seguir.

Em código usando project-lib alteração (e para todas as variações de directStorage=FALSE e setProjectAsset=TRUE):

project$save_data("NewAssetName.csv", data)
project$save_data("MyAssetName.csv", data, overwrite=TRUE)

Para o seguinte usando 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)

Além disso, o ibm-watson-studio-lib oferece uma função para carregar um arquivo local no armazenamento do espaço de trabalho e criar um ativo de dados:

asset <- wslib$upload_file("MyLocalFile.csv", "MyAssetName.csv")
wslib$show(asset)

Obter informações de conexão

Para retornar os metadados associados a uma conexão, é necessário alterar as funções a seguir.

Em código usando project-lib mudança:

connprops <- project$get_connection(name="MyConnection")

Para o seguinte usando ibm-watson-studio-lib:

connprops <- wslib$get_connection("MyConnection")

Obter informações de dados conectadas

Para retornar os metadados associados a um ativo de dados conectado, é necessário alterar as funções a seguir.

Em código usando project-lib mudança:

dataprops <- project$get_connected_data(name="MyConnectedData")

Para o seguinte usando ibm-watson-studio-lib:

dataprops <- wslib$get_connected_data("MyConnectedData")

Ativo de acesso por ID em vez de nome

Você pode retornar os metadados de uma conexão ou ativo de dados conectado acessando o ativo por ID em vez de pelo nome.

Em project-lib mudança:

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")

Para o seguinte usando 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")

Em project-lib, não é possível acessar arquivos (ativos de dados armazenados) por ID. Você só pode fazer isso pelo nome. A biblioteca ibm-watson-studio-lib suporta acessar arquivos por ID. Veja Usando ibm-watson-studio-lib.

Buscar ativos por tipo de ativo

Ao recuperar a lista de todos os ativos do projeto, você pode passar o parâmetro opcional assetType para a função get_assets que permite filtrar ativos por tipo. Os valores aceitos para este parâmetro em project-lib são data_asset, connection e asset.

Em código usando project-lib mudança:

project$get_assets()

# Or, for a supported asset type:
project$get_assets("<asset_type>")

# Or:
project$get_assets(assetType="<asset_type>")

Para o seguinte usando 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 os tipos de ativos disponíveis, utilize:

assettypes <- wslib$assets$list_asset_types()
wslib$show(assettypes)

Apoio de Spark

Para trabalhar com o Spark, você precisa alterar as funções que permitem o suporte ao Spark e a recuperação do site URL em um arquivo.

Configurar o suporte Spark

Para configurar o suporte a Spark:

Em código usando project-lib mudança:

# Provide SparkContext during setup
library(projectLib)
project <- projectLib::Project$new(sc, "<ProjectId>", "ProjectToken")

Para o seguinte usando ibm-watson-studio-lib:

library(ibmWatsonStudioLib) wslib <- access_project_or_space(list("token" = "ProjectToken"))

# provide SparkContext after initialization
wslib$spark$provide_spark_context(sc)

Recupere URL para acessar um arquivo do Spark

Para recuperar um URL para acessar um arquivo referenciado por um ativo do Spark via Hadoop :

Em código usando project-lib mudança:

url = project$get_file_url("MyAssetName.csv")

# or
url = project$get_file_url("MyAssetName.csv", directStorage=FALSE)

# or
url = project$get_file_url("MyAssetName.csv", directOsRetrieval=FALSE)

Para o seguinte usando ibm-watson-studio-lib:

url = wslib$spark$get_data_url("MyAssetName.csv")

Obtenha o arquivo URL para uso com o Spark

Recupere um URL para acessar um arquivo referenciado por um ativo do Spark via Hadoop.

Em código usando project-lib mudança:

url = project$get_file_url("MyFileName.csv, directStorage=TRUE)

# or
url = project$get_file_url("MyFileName.csv", directOsRetrieval=TRUE)

Para o seguinte usando ibm-watson-studio-lib:

wslib$spark$storage$get_data_url("MyFileName.csv")

Armazenamento do projeto de acesso diretamente

É possível buscar dados do armazenamento do projeto ou salvar dados para o armazenamento do projeto sem sincronizar os ativos do projeto.

Buscar dados

Para buscar dados do armazenamento do projeto:

Em código usando project-lib mudança:

project$get_file("MyFileName.csv", directStorage=TRUE)

# Or:
project$get_file("MyFileName.csv", directOsRetrieval=TRUE)

Para o seguinte usando ibm-watson-studio-lib:

wslib$storage$fetch_data("MyFileName.csv")

Salvar dados

Para salvar dados em um arquivo no armazenamento do projeto:

Em código usando project-lib mudança:

project$save_data("NewFileName.csv", data, directStorage=TRUE)

# Or:
project$save_data("NewFileName.csv", data, setProjectAsset=FALSE)

Para o seguinte usando ibm-watson-studio-lib:

wslib$storage$store_data("NewFileName.csv", data)

Em código usando project-lib mudança:

# Save (and overwrite if file exists) and do not create an asset in the project
project$save_data("MyFileName.csv", data, directStorage=TRUE, overwrite=TRUE)

# Or:
project$save_data("MyFileName.csv", data, setProjectAsset=FALSE, overwrite=TRUE)

Para o seguinte usando ibm-watson-studio-lib:

wslib$storage$store_data("MyFileName.csv", data, overwrite=TRUE)

Além disso, o site ibm-watson-studio-lib oferece uma função para fazer download de um arquivo do armazenamento do espaço de trabalho para o sistema de arquivos local:

wslib$storage$download_file("MyStorageFile.csv", "MyLocalFile.csv")

Você também pode registrar um arquivo no armazenamento do espaço de trabalho como um ativo de dados usando:

wslib$storage$register_asset("MyStorageFile.csv", "MyAssetName.csv")

Saiba Mais

Para usar a biblioteca ibm-watson-studio-lib para R em notebooks, consulte ibm-watson-studio-lib for R.