Migrando do projeto-lib para o Python 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 é removida do 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 mudanças que você precisa fazer nos notebooks existentes do Python para começar a usar a biblioteca ibm-watson-studio-lib .

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:

from project_lib import Project
project = Project("<ProjectId>","<ProjectToken>")

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

from ibm_watson_studio_lib import access_project_or_space
wslib = access_project_or_space({"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-lib em ambientes Spark.

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

from project_lib import Project
project = Project(sc,"<ProjectId>","<ProjectToken>")

Para o seguinte usando 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 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. Para ver quais informações de metadados do projeto estão disponíveis, use:

help(wslib.here.API)

Por exemplo:

  • 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", direct_storage=False)

# or:
buffer = project.get_file("MyAssetName.csv", direct_os_retrieval=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 direct_store=False e set_project_asset=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 asset_type 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(asset_type="<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
from project_lib import Project
project = Project(sc,"<ProjectId>","<ProjectToken>")

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

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", direct_storage=False)
# or
url = project.get_file_url("MyAssetName.csv", direct_os_retrieval=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:

project.get_file_url("MyFileName.csv", direct_storage=True)
# or
project.get_file_url("MyFileName.csv", direct_os_retrieval=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", direct_storage=True)

# Or:
project.get_file("MyFileName.csv", direct_os_retrieval=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:

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

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, direct_storage=True, overwrite=True)

# Or:
project.save_data("MyFileName.csv", data, set_project_asset=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 Python em notebooks, consulte ibm-watson-studio-lib para Python.