DataWorks提供PyODPS 2节点类型,集成了MaxCompute的Python SDK。您可以在DataWorks的PyODPS 2节点上,直接编辑Python代码,用于操作MaxCompute。
背景信息
MaxCompute提供了Python SDK方法说明,您可以使用Python的SDK来操作MaxCompute。
说明
- PyODPS 2节点底层的Python版本为2.7。
- PyODPS 2节点获取到本地处理的数据不能超过50 MB,节点运行时占用的内存不能超过1 GB,否则节点任务会结束运行。请避免在PyODPS 2节点中写入过多的数据处理代码。
- Hints参数的详情请参见SET操作。
PyODPS 2节点主要针对MaxCompute的Python SDK应用。对于纯Python代码的执行,您可以使用Shell节点执行上传至DataWorks的Python脚本。如果您需要在PyODPS
2节点中调用第三方包,请参见在PyODPS节点中调用第三方包。
新建PyODPS 2节点
- 进入数据开发页面。
- 登录DataWorks控制台。
- 在左侧导航栏,单击工作空间列表。
- 选择工作空间所在地域后,单击相应工作空间后的进入数据开发。
- 鼠标悬停至
图标,单击。您也可以展开
业务流程目录下的目标业务流程,右键单击
MaxCompute,选择。
如果您需要创建业务流程,请参见创建业务流程。
- 在新建节点对话框中,输入节点名称,并选择目标文件夹。
说明 节点名称必须是大小写字母、中文、数字、下划线(_)和小数点(.),且不能超过128个字符。
- 单击提交。
- 编辑PyODPS 2节点。
- 进入ODPS入口。
DataWorks的PyODPS 2节点中,将会包含一个全局的变量
odps或
o,即ODPS入口,您无需手动定义ODPS入口。
print(odps.exist_table('PyODPS_iris'))
- 执行SQL。
PyODPS 2支持ODPS SQL的查询,并可以读取执行的结果。
execute_sql或
run_sql方法的返回值是运行实例。
并非所有在MaxCompute客户端中可以执行的命令,都是PyODPS 2支持的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后,每次运行时,都需要添加相关的运行时的参数。
from odps import options
options.sql.settings = {'odps.sql.mapper.split.size': 16}
o.execute_sql('select * from PyODPS_iris') # 根据全局配置添加hints。
- 读取SQL执行结果。
运行SQL的实例能够直接执行
open_reader的操作,有以下两种情况:
- 单击节点编辑区域右侧的调度配置,配置节点的调度属性,详情请参见基础属性。
PyODPS 2节点可以使用系统定义的调度参数和自定义参数:
- 如果PyODPS 2使用系统定义的调度参数,可以直接在页面赋值。

说明 由于公共资源组无法直接访问外网环境,建议您有公网访问需求时,使用自定义资源组或独享调度资源。仅DataWorks专业版提供自定义资源组,任意版本都可以购买独享调度资源,详情请参见
DataWorks独享资源组。
- 您也可以在区域,配置自定义参数。

说明 自定义参数需要使用args['参数名']的形式调用,例如print (args['ds'])
。
- 提交节点。
注意 提交节点前,您需要设置重跑属性和依赖的上游节点。
- 单击工具栏中的
图标。
- 在提交新版本对话框中,输入备注。
- 单击确认。
如果您使用的是标准模式的工作空间,提交节点后,请单击右上角的
发布。详情请参见
发布任务。
- 测试节点,详情请参见查看周期任务。
PyODPS节点预装模块列表
PyODPS节点包括以下预装模块:
- setuptools
- cython
- psutil
- pytz
- dateutil
- requests
- pyDes
- numpy
- pandas
- scipy
- scikit_learn
- greenlet
- six
- 其它Python 2.7内置已安装的模块,如smtplib等。