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 .
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-libusa 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
- Buscar dados
- Salvar dados
- Obter informações de conexão
- Obter informações de dados conectadas
- Ativo de acesso por ID em vez de nome
- Buscar ativos por tipo de ativo
- Suporte ao Spark
- Armazenamento de projeto de acesso diretamente
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 projetowslib.here.get_description(): Retorna a descrição do proejtowslib.here.get_ID(): Retorna o ID do projetowslib.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.