使用 Python SDK
可以通过从 Python Package Index 安装库 iaesdk 来安装 IBM Analytics Engine SDK。
在命令行中输入以下命令:
pip install --upgrade "iaesdk>=1.1.1"
可在 GitHub上找到源代码。 iaesdk 库提供对 IBM Analytics Engine API 的完整访问权。
创建 IBM Analytics Engine 服务资源或低级客户机时,需要提供服务端点和 API 密钥。
服务实例标识也称为实例 GUID。 您可以在创建服务凭证时或通过 CLI 检索服务实例标识。 请参阅 检索服务端点。
要使用 iaesdk 库,您需要以下值:
IAM_API_KEY: 创建服务凭证时生成的 API 密钥。 您可以通过在 IBM Cloud 仪表板上查看服务凭证来进行检索。instance_guid: 创建服务凭证时在resource_instance_id中生成的值。 您可以通过在 IBM Cloud 仪表板上查看服务凭证来进行检索。IAE_ENDPOINT_URL: 包含https://协议的服务端点 URL。 请参阅 服务端点。
使用 iaesdk 的代码样本
安装 Python SDK 后,开始使用该 SDK,包括将凭证寻源到 IBM Analytics Engine 服务,调用该服务,然后发出不同的集群命令,如以下样本代码片段中所示。 代码示例是针对 Python 3.7编写的。
除了本主题中的样本代码片段外,您还可以使用 IBM Analytics Engine V3 API 参考 中的 Python 代码样本。
以下代码样本显示了如何执行以下操作:
-
向 IBM Analytics Engine 服务认证并构建服务客户机:
from iaesdk import IbmAnalyticsEngineApiV3 from ibm_cloud_sdk_core.authenticators import IAMAuthenticator import json # Constants for IBM Analytics Engine values IAM_API_KEY = "{apikey}" # eg "W00YiRnLW4a3fTjMB-odB-2ySfTrFBIQQWanc--P3byk" IAE_ENDPOINT_URL = "{url}" # Current list avaiable at https://cloud.ibm.com/apidocs/ibm-analytics-engine#service-endpoints const API_AUTH_URL = "{api auth url}" # "https://iam.cloud.ibm.com/identity/token" # Create an IAM authenticator. authenticator = IAMAuthenticator(apikey=IAM_API_KEY, url=API_AUTH_URL) # Construct the service client. ibm_analytics_engine_api_service = IbmAnalyticsEngineApiV3(authenticator=authenticator) # Set our custom service URL ibm_analytics_engine_api_service.set_service_url(IAE_ENDPOINT_URL) # Service operations can now be invoked using the "ibm_analytics_engine_api_service" variable. -
检索单个实例的详细信息:
get_instance(self, instance_id: str, **kwargs ) -> DetailedResponse示例请求:
instance = ibm_analytics_engine_api_service.get_instance( instance_id='dc0e9889-eab2-4t9e-9441-566209499546' ).get_result() print(json.dumps(instance, indent=2)) -
在给定的无服务器 Spark 实例上部署 Spark 应用程序:
create_application(self, instance_id: str, *, application_details: 'ApplicationRequestApplicationDetails' = None, **kwargs ) -> DetailedResponse示例请求:
application_request_application_details_model = { 'application': '/opt/ibm/spark/examples/src/main/python/wordcount.py', 'arguments': ['/opt/ibm/spark/examples/src/main/resources/people.txt'] } create_application_response = ibm_analytics_engine_api_service.create_application( instance_id='dc0e9889-eab2-4t9e-9441-566209499546', application_details=application_request_application_details_model ).get_result() print(json.dumps(create_application_response, indent=2)) -
检索在给定实例上运行的所有 Spark 应用程序:
list_applications(self, instance_id: str, **kwargs ) -> DetailedResponse示例请求:
list_applications_response = ibm_analytics_engine_api_service.list_applications( instance_id='dc0e9889-eab2-4t9e-9441-566209499546' ).get_result() print(json.dumps(list_applications_response, indent=2)) -
检索给定 Spark 应用程序的详细信息:
get_application(self, instance_id: str, application_id: str, **kwargs ) -> DetailedResponse示例请求:
get_application_response = ibm_analytics_engine_api_service.get_application( instance_id='dc0e9889-eab2-4t9e-9441-566209499546', application_id='db933645-0b68-4dcb-80d8-7b71a6c8e542' ).get_result() print(json.dumps(get_application_response, indent=2)) -
停止由
app_id标识标识的正在运行的应用程序。 这是一个幂等的操作。 如果请求的应用程序已停止或完成,那么不执行任何操作。delete_application(self, instance_id: str, application_id: str, **kwargs ) -> DetailedResponse示例请求:
delete_application_by_id_response = ibm_analytics_engine_api_service.delete_application( instance_id='dc0e9889-eab2-4t9e-9441-566209499546', application_id='db933645-0b68-4dcb-80d8-7b71a6c8e542' ).get_result() print(json.dumps(delete_application_by_id_response, indent=2)) -
返回由
app_id标识标识的应用程序的状态:get_application_state(self, instance_id: str, application_id: str, **kwargs ) -> DetailedResponse示例请求:
get_application_state_response = ibm_analytics_engine_api_service.get_application_state( instance_id='dc0e9889-eab2-4t9e-9441-566209499546', application_id='db933645-0b68-4dcb-80d8-7b71a6c8e542' ).get_result() print(json.dumps(get_application_state_response, indent=2))