ibm-watson-studio-lib
ライブラリーは、 project-lib library
の後継です。 ノートブックでは引き続き project-lib
API を使用できますが、 ibm-watson-studio-lib
ライブラリーを使用するために既存のノートブックをマイグレーションすることを検討する必要があります。
ibm-watson-studio-lib
を使用する利点は次のとおりです。
- 資産参照 API は、ライブラリーによって明示的にサポートされている資産だけでなく、すべてのタイプの資産への読み取り専用アクセスを提供します。
ibm-watson-studio-lib
は、アプリケーションの領域に従って使用可能な関数を構造化する、永続的な API 命名規則を使用します。
以下のセクションでは、 ibm-watson-studio-lib
ライブラリーの使用を開始するために既存の Python ノートブックで行う必要がある変更について説明します。
ライブラリーのセットアップ
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 環境でのライブラリーのセットアップ
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
の対応する機能にマイグレーションするときにノートブックで行う必要があるコード変更について説明します。
プロジェクト情報の取得
プロジェクト関連情報をプログラマチックに取り出すには、以下の関数を変更する必要があります。
データ接続のリスト
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()
: プロジェクト 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")
名前ではなく ID で資産にアクセスする
名前ではなく ID で資産にアクセスすることで、接続または接続されたデータ資産のメタデータを返すことができます。
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
では、ID を使用してファイル (保管データ資産) にアクセスすることはできません。 これは名前でのみ行うことができます。 ibm-watson-studio-lib
ライブラリーは、ID によるファイルへのアクセスをサポートします。 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 の取得
Hadoopを介して Spark から資産によって参照されるファイルにアクセスするための URL を取得するには、以下のようにします。
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 の取得
Hadoopを介して Spark から資産によって参照されるファイルにアクセスするための URL を取得します。
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)
また、 ibm-watson-studio-lib
には、プロジェクト・ストレージからローカル・ファイル・システムにファイルをダウンロードする機能が用意されています。
wslib.storage.download_file("MyStorageFile.csv", "MyLocalFile.csv")
以下を使用して、プロジェクト・ストレージ内のファイルをデータ資産として登録することもできます。
wslib.storage.register_asset("MyStorageFile.csv", "MyAssetName.csv")
もっと見る
ノートブックで Python 用の ibm-watson-studio-lib
ライブラリーを使用するには、 ibm-watson-studio-lib for Pythonを参照してください。
親トピック: ibm-watson-studio-lib の使用