Migration von project-lib für Python auf ibm-watson-studio-lib
Die Bibliothek ibm-watson-studio-lib ist der Nachfolger von project-lib library. Obwohl Sie weiterhin die project-lib -API in Ihren Notebooks verwenden können, ist sie veraltet und Sie sollten vorhandene Notebooks migrieren, um die ibm-watson-studio-lib -Bibliothek zu verwenden.
Die Bibliothek project-lib wird aus der 25.1 Laufzeitumgebung entfernt. In älteren Runtimes ist project-lib weiterhin verfügbar.
Vorteile der Verwendung von ibm-watson-studio-lib :
- Die Bibliothek
ibm-watson-studio-libkann in Notebooks in Projekten und Notebooks verwendet werden, die in einen Bereitstellungsbereich hochgestuft wurden, ohne dass Änderungen am Code erforderlich sind. Inproject-libist der Geltungsbereich auf Projekte beschränkt. - Die API zum Durchsuchen von Assets bietet Lesezugriff auf alle Assettypen, nicht nur auf die von der Bibliothek explizit unterstützten Typen.
ibm-watson-studio-libverwendet eine Namenskonvention für die Constistent-API, die die verfügbaren Funktionen entsprechend ihrem jeweiligen Anwendungsbereich strukturiert.
In den folgenden Abschnitten werden die Änderungen beschrieben, die Sie in vorhandenen Python -Notebooks vornehmen müssen, um mit der Verwendung der Bibliothek ibm-watson-studio-lib zu beginnen.
Bibliothek einrichten
Sie müssen die folgenden Änderungen in vorhandenen Notebooks vornehmen, um ibm-watson-studio-libverwenden zu können:
Ändern Sie im Code mit project-lib Folgendes:
from project_lib import Project
project = Project()
# or:
project = Project.access()
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
from ibm_watson_studio_lib import access_project_or_space
credentials_dic={"project_id":'<ProjectId>', "token":'<ProjectToken>'}
wslib = access_project_or_space(params=credentials_dic)
Bibliotheksnutzung
In den folgenden Abschnitten werden die Codeänderungen beschrieben, die Sie in Ihren Notebooks vornehmen müssen, wenn Sie Funktionen in project-lib auf die entsprechenden Funktionen in ibm-watson-studio-libmigrieren.
- Projektinformationen abrufen
- Daten abrufen
- Daten speichern
- Verbindungsinformationen abrufen
- Informationen zu verbundenen Daten abrufen
- Zugriff auf Asset nach ID anstelle des Namens
- Assets nach Assettyp abrufen
- Direkt auf Projektspeicher zugreifen
Projektinformationen abrufen
Um projektbezogene Informationen programmgesteuert abzurufen, müssen Sie die folgenden Funktionen ändern:
Datenverbindungen auflisten
Ändern Sie im Code mit project-lib Folgendes:
project.get_connections()
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
assets = wslib.list_connections()
wslib.show(assets)
Alternativ können Sie mit ibm-watson-studio-libverbundene Datenassets auflisten:
assets = wslib.list_connected_data()
wslib.show(assets)
Datendateien auflisten
Diese Funktion gibt die Liste der Datendateien in Ihrem Projekt zurück.
Ändern Sie im Code, der project-lib verwendet, Folgendes:
project.get_files()
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
assets = wslib.list_stored_data()
wslib.show(assets)
Name oder Beschreibung abrufen
In ibm-watson-studio-libkönnen Sie alle Metadaten zum Projekt, z. B. den Namen eines Projekts oder seine Beschreibung, über den Eingangspunkt wslib.hereabrufen.
Ändern Sie im Code mit project-lib Folgendes:
name = project.get_name()
desc = project.get_description()
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
name = wslib.here.get_name()
desc = wslib.here.get_description()
Metadaten abrufen
Es gibt keinen Ersatz für get_matadata in project-lib:
project.get_metadata()
Die Funktion wslib.here in ibm-watson-studio-lib stellt Teile dieser Informationen bereit. Um anzuzeigen, welche Projektmetadateninformationen verfügbar sind, verwenden Sie Folgendes:
help(wslib.here.API)
Zum Beispiel:
wslib.here.get_name(): Gibt den Projektnamen zurück.wslib.here.get_description(): Gibt die Beschreibung des Proejct zurück.wslib.here.get_ID(): Gibt die Projekt-ID zurück.wslib.here.get_storage(): Gibt die Speichermetadaten zurück.
Speichermetadaten abrufen
Ändern Sie im Code mit project-lib Folgendes:
project.get_storage_metadata()
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
wslib.here.get_storage()
Daten abrufen
Für den Zugriff auf Daten in einer Datei müssen Sie die folgenden Funktionen ändern.
Ändern Sie im Code mit project-lib Folgendes:
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)
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
buffer = wslib.load_data("MyAssetName.csv")
Darüber hinaus bietet ibm-watson-studio-lib eine Funktion zum Herunterladen und Speichern eines Datenassets im lokalen Dateisystem:
info = wslib.download_file("MyAssetName.csv", "MyLocalFile.csv")
Daten speichern
Um Daten in einer Datei zu speichern, müssen Sie die folgenden Funktionen ändern.
Im Code, der project-lib verwendet (und für alle Varianten von direct_store=False und set_project_asset=True):
project.save_data("NewAssetName.csv", data)
project.save_data("MyAssetName.csv", data, overwrite=True)
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
asset = wslib.save_data("NewAssetName.csv", data)
wslib.show(asset)
asset = wslib.save_data("MyAssetName.csv", data, overwrite=True)
wslib.show(asset)
Zusätzlich bietet ibm-watson-studio-lib eine Funktion zum Hochladen einer lokalen Datei in den Arbeitsbereichsspeicher und zum Erstellen eines Datenassets:
asset = wslib.upload_file("MyLocalFile.csv", "MyAssetName.csv")
wslib.show(asset)
Verbindungsinformationen abrufen
Um die einer Verbindung zugeordneten Metadaten zurückzugeben, müssen Sie die folgenden Funktionen ändern.
Ändern Sie im Code mit project-lib Folgendes:
connprops = project.get_connection(name="MyConnection")
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
connprops = wslib.get_connection("MyConnection")
Informationen zu verbundenen Daten abrufen
Um die Metadaten zurückzugeben, die einem verbundenen Datenasset zugeordnet sind, müssen Sie die folgenden Funktionen ändern.
Ändern Sie im Code mit project-lib Folgendes:
dataprops = project.get_connected_data(name="MyConnectedData")
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
dataprops = wslib.get_connected_data("MyConnectedData")
Auf Asset nach ID anstelle des Namens zugreifen
Sie können die Metadaten einer Verbindung oder eines verbundenen Datenassets zurückgeben, indem Sie auf das Asset nach ID anstatt nach Name zugreifen.
Ändern Sie in project-lib Folgendes:
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")
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
connprops = wslib.by_id.get_connection("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
dataprops = wslib.by_id.get_connected_data("xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")
In project-libist es nicht möglich, auf Dateien (gespeicherte Datenassets) nach ID zuzugreifen. Dies ist nur nach Namen möglich. Die Bibliothek ibm-watson-studio-lib unterstützt den Zugriff auf Dateien nach ID. Siehe Verwendung von ibm-watson-studio-lib.
Assets nach Assettyp abrufen
Wenn Sie die Liste aller Projektassets abrufen, können Sie den optionalen Parameter asset_type an die Funktion get_assets übergeben, mit der Sie Assets nach Typ filtern können. Die gültigen Werte für diesen Parameter in project-lib sind data_asset, connection und asset.
Ändern Sie im Code mit project-lib Folgendes:
project.get_assets()
# Or, for a supported asset type:
project.get_assets("<asset_type>")
# Or:
project.get_assets(asset_type="<asset_type>")
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
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)
Verwenden Sie Folgendes, um die verfügbaren Assettypen aufzulisten:
assettypes = wslib.assets.list_asset_types()
wslib.show(assettypes)
Spark-Unterstützung
Um mit Spark zu arbeiten, müssen Sie die Funktionen ändern, die die Spark-Unterstützung und das Abrufen der URL in eine Datei ermöglichen.
Spark-Unterstützung einrichten
So richten Sie die Spark-Unterstützung ein:
Ändern Sie im Code mit project-lib Folgendes:
# Provide SparkContext during setup
from project_lib import Project
project = Project(sc,"<ProjectId>","<ProjectToken>")
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
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)
Rufen Sie URL ab, um auf eine Datei von Spark zuzugreifen
Um eine URL abzurufen, um auf eine Datei zuzugreifen, auf die von einem Asset aus Spark über Hadoop verwiesen wird:
Ändern Sie im Code mit project-lib Folgendes:
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)
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
url = wslib.spark.get_data_url("MyAssetName.csv")
Datei für die Verwendung mit Spark erhalten URL
Rufen Sie eine URL ab, um auf eine Datei zuzugreifen, auf die von einem Asset aus Spark über Hadoop verwiesen wird.
Ändern Sie im Code mit project-lib Folgendes:
project.get_file_url("MyFileName.csv", direct_storage=True)
# or
project.get_file_url("MyFileName.csv", direct_os_retrieval=True)
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
wslib.spark.storage.get_data_url("MyFileName.csv")
Direkter Zugriff auf Projektspeicher
Sie können Daten aus dem Projektspeicher abrufen oder Daten im Projektspeicher speichern, ohne die Projektassets zu synchronisieren.
Daten abrufen
So rufen Sie Daten aus dem Projektspeicher ab:
Ändern Sie im Code mit project-lib Folgendes:
project.get_file("MyFileName.csv", direct_storage=True)
# Or:
project.get_file("MyFileName.csv", direct_os_retrieval=True)
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
wslib.storage.fetch_data("MyFileName.csv")
Daten speichern
So speichern Sie Daten in einer Datei im Projektspeicher:
Ändern Sie im Code mit project-lib Folgendes:
# 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)
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
wslib.storage.store_data("NewFileName.csv", data)
Ändern Sie im Code mit project-lib Folgendes:
# 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)
Gehen Sie wie folgt vor, wenn Sie ibm-watson-studio-libverwenden:
wslib.storage.store_data("MyFileName.csv", data, overwrite=True)
Zusätzlich bietet ibm-watson-studio-lib eine Funktion zum Herunterladen einer Datei aus dem Arbeitsbereichsspeicher in das lokale Dateisystem:
wslib.storage.download_file("MyStorageFile.csv", "MyLocalFile.csv")
Sie können auch eine Datei im Arbeitsbereichsspeicher als Daten-Asset registrieren, indem Sie diese verwenden:
wslib.storage.register_asset("MyStorageFile.csv", "MyAssetName.csv")
Weitere Informationen
Informationen zur Verwendung der ibm-watson-studio-lib -Bibliothek für Python in Notebooks finden Sie unter ibm-watson-studio-lib für Python.