DataWorks支持PyODPS类型任务

摘要: 昨天,DataWorks推出了PYODPS任务类型,集成了Maxcompute的Python SDK,可在DataWorks的PYODPS节点上直接编辑Python代码操作Maxcompute,也可以设置调度任务来处理数据,提高数据开发效率。

昨天,DataWorks推出了PYODPS任务类型,集成了Maxcompute的Python SDK,可在DataWorks的PYODPS节点上直接编辑Python代码操作Maxcompute,也可以设置调度任务来处理数据,提高数据开发效率。

效果如下图

适用region

只有华东2(上海)region 支持了 PYODPS 节点。

注:底层的 Python 版本为 2.7 。

新建 PYODPS 节点

新建 PYODPS 节点具体操作如下:

1) 单击数据开发页面工具栏中的 新建 > 新建任务。2) 填写新建任务弹出框中的各配置项。

3) 单击创建

编辑 PYODPS 节点

ODPS入口

DataWorks 的 PyODPS 节点中,将会包含一个全局的变量odps或者o,即 ODPS 入口。用户不需要手动定义 ODPS 入口。

print(odps.exist_table('pyodps_iris'))

执行SQL

PyODPS支持ODPS SQL的查询,并可以读取执行的结果。execute_sql或者run_sql方法的返回值是 运行实例 。

注解:并非所有在 ODPS Console 中可以执行的命令都是 ODPS 可以接受的 SQL 语句。 在调用非 DDL / DML 语句时,请使用其他方法,例如 GRANT / REVOKE 等语句请使用 run_security_query 方法,PAI 命令请使用 run_xflow 或 execute_xflow 方法。

>>>o.execute_sql('select * from dual')#  同步的方式执行,会阻塞直到SQL执行完成>>>>>>instance=o.run_sql('select * from dual')# 异步的方式执行>>>print(instance.get_logview_address())# 获取logview地址>>>instance.wait_for_success()# 阻塞直到完成

设置运行参数

有时,我们在运行时,需要设置运行时参数,我们可以通过设置hints参数,参数类型是dict。

>>>o.execute_sql('select * from pyodps_iris',hints={'odps.sql.mapper.split.size':16})

我们可以对于全局配置设置sql.settings后,每次运行时则都会添加相关的运行时参数。

>>>fromodpsimportoptions>>>options.sql.settings={'odps.sql.mapper.split.size':16}>>>o.execute_sql('select * from pyodps_iris')# 会根据全局配置添加hints

读取SQL执行结果

运行 SQL 的 instance 能够直接执行open_reader的操作,一种情况是SQL返回了结构化的数据。

>>>witho.execute_sql('select * from dual').open_reader()asreader:>>>forrecordinreader:>>># 处理每一个record

另一种情况是 SQL 可能执行的比如desc,这时通过reader.raw属性取到原始的SQL执行结果。

>>>witho.execute_sql('desc dual').open_reader()asreader:>>>print(reader.raw)

使用调度参数

PYODPS节点使用调度参数需要注意一下,系统定义的调度参数,可以直接通过此方法获取。

自定义参数的使用,需要使用单独的方法获取。

在全局包括一个args对象,可以在这个中获取,它是一个dict类型。

测试运行结果如下:

请注意:在数据开发下,使用了自定义调度参数,页面上直接触发运行PYODPS节点时,需要写死时间,PYODPS节点无法像SQL一样直接替换。

调度请参考:https://help.aliyun.com/document_detail/30298.

原文链接

你可能感兴趣的:(DataWorks支持PyODPS类型任务)