详情页标题前

阿里云云原生大数据计算服务 MaxCompute任务实例-云淘科技

详情页1

Task是MaxCompute的基本计算单元,例如SQL Task。本文为您介绍PyODPS中任务实例的基本操作。

基本操作

Task在执行时会被实例化, 以MaxCompute实例(下文简称为实例或Instance)的形式存在。实例常见的操作如下:

  • list_instances():获取项目空间下的所有的Instance。

  • exist_instance():判断某实例是否存在。

  • get_instance():获取实例。

  • stop_instance():停止实例。仅支持对运行中的实例进行停止实例操作,否则会报错。

    说明

    通过Instance对象调用stop方法也可以用于停止Instance,如o.get_instance('instance id').stop

示例

  • 获取Instancede的ID

    for instance in o.list_instances():
        print(instance.id)
  • 判断Instance是否存在

    print(o.exist_instance('my_instance_id'))

获取Logview地址

  • 对于SQL等任务,通过Instance对象调用get_logview_address方法即可获取Logview地址。

    #从已有的instance对象获取Logview地址。
    instance = o.run_sql('desc pyodps_iris')
    print(instance.get_logview_address())
    
    #从instance id获取Logview地址。
    instance = o.get_instance('my_instance_id')
    print(instance.get_logview_address())
  • 对于机器学习PAI类型任务,需要先枚举其子任务,再获取子任务的Logview。

    instance = o.run_xflow('AppendID', 'algo_public', {'inputTableName': 'input_table', 'outputTableName': 'output_table'})
    for sub_inst_name, sub_inst in o.get_xflow_sub_instances(instance).items():
        print('%s: %s' % (sub_inst_name, sub_inst.get_logview_address()))

任务实例状态

一个Instance的状态可以是RunningSuspended或者 Terminated。关于任务实例状态的方法有以下几种:

  • status:属性来获取状态。

  • is_terminated:返回当前Instance是否已经执行完毕的结果。

  • is_successful:返回当前Instance是否正确地执行完毕的结果。任务处于运行中或者执行失败都会返回False。

代码示例如下。

  • 获取Instance状态。

    instance=o.get_instance('my_instance_id')
    print(instance.status)
    print(instance.status.value)

    返回值示例:

    Status.TERMINATED
    Terminated
  • 判断当前示例是否已经执行完毕。

    instance=o.get_instance('my_instance_id')
    from odps.models import Instance
    print(instance.status == Instance.Status.TERMINATED)

    返回值为True表示已执行完毕。

说明

调用wait_for_completion方法会阻塞直到Instance执行完成。wait_for_success方法同样会阻塞,但如果最终任务执行失败,会抛出相关异常。

子任务操作

一个Instance在运行时,可能包含一个或者多个子任务,这些子任务称为Task(注意:这里的Task不同于MaxCompute的计算单元)。关于Task的方法有以下几种:

  • get_task_names:通过此方法获取所有的Task任务。该方法返回一个所有子任务的名称列表。

    instance=o.get_instance('my_instance_id')
    instance.get_task_names()

    返回值示例:

    ['jdbc_sql_task']
  • get_task_result:指定Task名称,获取该Task的执行结果。该方法是以字典的形式返回每个Task的执行结果。 代码示例如下:

    • 获取子任务名称。

      instance=o.execute_sql('select*frompyodps_irislimit1')
      print(instance.get_task_names())

      返回值示例:

      ['AnonymousSQLTask']
    • 获取子任务运行结果。

      print(instance.get_task_result('AnonymousSQLTask'))

      返回值示例:

      "sepallength","sepalwidth","petallength","petalwidth","name"
      4.9,3.0,1.4,0.2,"Iris-setosa"
    • 获取子任务结果。

      print(instance.get_task_results())

      返回值示例:

      OrderedDict([('AnonymousSQLTask', '"sepallength","sepalwidth","petallength","petalwidth","name"
      4.9,3.0,1.4,0.2,"Iris-setosa"
      ')])
  • get_task_progress:该方法获取在任务实例运行时Task当前的运行进度。

    instance=o.get_instance('20160519101349613gzbzufck2')
    while not instance.is_terminated():
        for task_name in instance.get_task_names():
            print(instance.id, instance.get_task_progress(task_name).get_stage_progress_formatted_string())
            time.sleep(10)

    返回值示例:

    20160519101349613gzbzufck2 2016-05-19 18:14:03 M1_Stg1_job0:0/1/1[100%]

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/159698.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云RDS数据库UpgradeDBInstanceKernelVersion – 升级RDS实例内核小版本-云淘科技

    该接口用于升级RDS实例的内核小版本。 接口说明 适用引擎 RDS MySQL RDS PostgreSQL RDS SQL Server 相关功能文档 注意 使用该接口前,请仔细阅读功能文档,确保完全了解使用接口的前提条件及使用后造成的影响后,再进行操作。 MySQL升级内核小版本 PostgreSQL升级内核小版本 SQL Server升级内核小版本 调…

    阿里云数据库 2023年12月9日
  • 阿里云RDS数据库ModifyDBInstanceMetrics – 修改RDS PostgreSQL展示的监控指标项-云淘科技

    该接口用于变更RDS PostgreSQL实例展示的增强监控指标。 接口说明 适用引擎 RDS PostgreSQL 相关功能文档 注意 使用该接口前,请仔细阅读功能文档,确保完全了解使用接口的前提条件及使用后造成的影响后,再进行操作。 查看增强监控。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,Open…

    阿里云数据库 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云ECS云服务器续费ECS实例-云淘科技

    除了通过ECS控制台或售卖页进行云服务器续费外,阿里云还支持直接通过API进行续费查询和续费管理。 背景信息 对于包年包月的云服务器,生命周期非常重要。如果云服务器资源不能按时续费,将可能导致服务器被锁定甚至被释放,从而影响业务持续性。API帮助您及时了解和检查资源的到期时间,并完成续费充值功能。 本文提供了完整代码示例,并提供了代码示例解析,请参见: 查询…

    阿里云服务器 2023年12月9日
  • 阿里云RDS数据库DestroyDBInstance – 销毁实例-云淘科技

    该接口用于销毁回收站中的RDS实例。 接口说明 本接口已下线,请勿使用。 调试 您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。 调试调试授权信息下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予…

    阿里云数据库 2023年12月9日
  • 阿里云对象存储OSSAndroid进度条-云淘科技

    进度条用于指示上传或下载的进度。 示例代码 以下代码以asyncPutObject方法为例,介绍如何使用进度条。 // 构造上传请求。 // 依次填写Bucket名称(例如examplebucket)、Object完整路径(例如exampledir/exampleobject.txt)和本地文件完整路径(例如/storage/emulated/0/oss/e…

    阿里云对象存储 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。