ibm-watson-studio-lib
库是 project-lib library
的后继库。 虽然您仍可以在 Notebook 中继续使用 project-lib
API ,但您应该考虑迁移现有 Notebook 以使用 ibm-watson-studio-lib
库。
使用 ibm-watson-studio-lib
的优点包括:
- 资产浏览 API 提供对所有类型资产的只读访问权,而不仅仅是那些由库显式支持的资产。
ibm-watson-studio-lib
使用便秘支架 API 命名约定,根据其应用领域来构造可用功能。
以下部分描述了需要在现有 Python Notebook 中进行的更改才能开始使用 ibm-watson-studio-lib
库。
设置库
您需要在现有 Notebook 中进行以下更改以开始使用 ibm-watson-studio-lib
:
在使用 project-lib
更改的代码中:
from project_lib import Project
project = Project("<ProjectId>","<ProjectToken>")
到使用 ibm-watson-studio-lib
的以下内容:
from ibm_watson_studio_lib import access_project_or_space
wslib = access_project_or_space({"token":"<ProjectToken>"})
在 Spark 环境中设置库
您需要在现有 Notebook 中进行以下更改,以便在 Spark 环境中开始使用 ibm-watson-studio-lib
。
在使用 project-lib
更改的代码中:
from project_lib import Project
project = Project(sc,"<ProjectId>","<ProjectToken>")
到使用 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)
库使用情况
以下部分描述了将 project-lib
中的函数迁移到 ibm-watson-studio-lib
中的相应函数时需要在 Notebook 中进行的代码更改。
获取项目信息
要以编程方式访存与项目相关的信息,需要更改以下函数:
列出数据连接
在使用 project-lib
更改的代码中:
project.get_connections()
到使用 ibm-watson-studio-lib
的以下内容:
assets = wslib.list_connections()
wslib.show(assets)
或者,使用 ibm-watson-studio-lib
,可以列出已连接的数据资产:
assets = wslib.list_connected_data()
wslib.show(assets)
列出数据文件
此函数返回项目中数据文件的列表。
在使用 project-lib
更改的代码中,使用:
project.get_files()
到使用 ibm-watson-studio-lib
的以下内容:
assets = wslib.list_stored_data()
wslib.show(assets)
获取名称或描述
在 ibm-watson-studio-lib
中,可以通过入口点 wslib.here
检索有关项目的任何元数据,例如项目名称或其描述。
在使用 project-lib
更改的代码中:
name = project.get_name()
desc = project.get_description()
到使用 ibm-watson-studio-lib
的以下内容:
name = wslib.here.get_name()
desc = wslib.here.get_description()
获取元数据
project-lib
中没有 get_matadata
的替代项:
project.get_metadata()
ibm-watson-studio-lib
中的函数 wslib.here
显示此信息的部分。 要查看可用的项目元数据信息,请使用:
help(wslib.here.API)
例如:
wslib.here.get_name()
: 返回项目名称wslib.here.get_description()
: 返回 proejct 描述wslib.here.get_ID()
: 返回项目标识wslib.here.get_storage()
: 返回存储器元数据
获取存储元数据
在使用 project-lib
更改的代码中:
project.get_storage_metadata()
到使用 ibm-watson-studio-lib
的以下内容:
wslib.here.get_storage()
访存数据
要访问文件中的数据,需要更改以下函数。
在使用 project-lib
更改的代码中:
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)
到使用 ibm-watson-studio-lib
的以下内容:
buffer = wslib.load_data("MyAssetName.csv")
此外, ibm-watson-studio-lib
提供了用于下载数据资产并将其存储在本地文件系统中的功能:
info = wslib.download_file("MyAssetName.csv", "MyLocalFile.csv")
保存数据
要将数据保存到文件中,需要更改以下函数。
在使用 project-lib
更改的代码中 (以及针对 direct_store=False
和 set_project_asset=True
的所有变体):
project.save_data("NewAssetName.csv", data)
project.save_data("MyAssetName.csv", data, overwrite=True)
到使用 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)
此外, ibm-watson-studio-lib
提供了用于将本地文件上载到项目存储器并创建数据资产的功能:
asset = wslib.upload_file("MyLocalFile.csv", "MyAssetName.csv")
wslib.show(asset)
获取连接信息
要返回与连接关联的元数据,需要更改以下函数。
在使用 project-lib
更改的代码中:
connprops = project.get_connection(name="MyConnection")
到使用 ibm-watson-studio-lib
的以下内容:
connprops = wslib.get_connection("MyConnection")
获取已连接的数据信息
要返回与已连接数据资产关联的元数据,需要更改以下函数。
在使用 project-lib
更改的代码中:
dataprops = project.get_connected_data(name="MyConnectedData")
到使用 ibm-watson-studio-lib
的以下内容:
dataprops = wslib.get_connected_data("MyConnectedData")
按标识而不是名称访问资产
您可以通过按标识而不是按名称访问资产来返回连接或已连接数据资产的元数据。
在 project-lib
更改中:
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")
到使用 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")
在 project-lib
中,无法按标识访问文件 (存储的数据资产)。 只能按名称执行此操作。 ibm-watson-studio-lib
库支持按标识访问文件。 请参阅 使用 ibm-watson-studio-lib。
按资产类型访存资产
检索所有项目资产的列表时,可以将可选参数 asset_type
传递到允许您按类型过滤资产的函数 get_assets
。 project-lib
中此参数的可接受值为 data_asset
, connection
和 asset
。
在使用 project-lib
更改的代码中:
project.get_assets()
# Or, for a supported asset type:
project.get_assets("<asset_type>")
# Or:
project.get_assets(asset_type="<asset_type>")
到使用 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)
要列出可用资产类型,请使用:
assettypes = wslib.assets.list_asset_types()
wslib.show(assettypes)
Spark 支持
要使用 Spark ,您需要更改启用 Spark 支持和检索文件 URL 的功能。
设置 Spark 支持
要设置 Spark 支持:
在使用 project-lib
更改的代码中:
# Provide SparkContext during setup
from project_lib import Project
project = Project(sc,"<ProjectId>","<ProjectToken>")
到使用 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)
从 Spark 检索用于访问文件的 URL
要检索 URL 以通过 Hadoop从 Spark 访问资产引用的文件:
在使用 project-lib
更改的代码中:
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)
到使用 ibm-watson-studio-lib
的以下内容:
url = wslib.spark.get_data_url("MyAssetName.csv")
获取用于 Spark 的文件 URL
检索 URL 以通过 Hadoop从 Spark 访问资产引用的文件。
在使用 project-lib
更改的代码中:
project.get_file_url("MyFileName.csv", direct_storage=True)
# or
project.get_file_url("MyFileName.csv", direct_os_retrieval=True)
到使用 ibm-watson-studio-lib
的以下内容:
wslib.spark.storage.get_data_url("MyFileName.csv")
直接访问项目存储器
您可以从项目存储器访存数据或将数据保存到项目存储器,而无需同步项目资产。
访存数据
要从项目存储器访存数据,请执行以下操作:
在使用 project-lib
更改的代码中:
project.get_file("MyFileName.csv", direct_storage=True)
# Or:
project.get_file("MyFileName.csv", direct_os_retrieval=True)
到使用 ibm-watson-studio-lib
的以下内容:
wslib.storage.fetch_data("MyFileName.csv")
保存数据
要将数据保存到项目存储器中的文件,请执行以下操作:
在使用 project-lib
更改的代码中:
# 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)
到使用 ibm-watson-studio-lib
的以下内容:
wslib.storage.store_data("NewFileName.csv", data)
在使用 project-lib
更改的代码中:
# 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)
到使用 ibm-watson-studio-lib
的以下内容:
wslib.storage.store_data("MyFileName.csv", data, overwrite=True)
Additionaly ibm-watson-studio-lib
提供了用于将文件从项目存储器下载到本地文件系统的功能:
wslib.storage.download_file("MyStorageFile.csv", "MyLocalFile.csv")
您还可以使用以下命令将项目存储器中的文件注册为数据资产:
wslib.storage.register_asset("MyStorageFile.csv", "MyAssetName.csv")
了解更多信息
要在 Notebook 中使用 Python 的 ibm-watson-studio-lib
库,请参阅 ibm-watson-studio-lib for Python。