DataWorks的Shell类型节点支持运行Python脚本。本文将为您介绍如何使用通用Shell节点或EMR Shell节点运行Python 2或Python 3脚本。
背景信息
DataWorks支持将Python脚本作为资源上传。您可以在通用Shell节点或EMR Shell节点中指定Python 3或Python 2的执行路径,进而通过引用已上传的资源来运行Python脚本。
前提条件
EMR Shell节点使用前提条件,详情请参见EMR Shell节点使用前提条件。
通用Shell节点使用前提条件,详情请参见通用Shell节点使用前提条件。
在DataWorks资源组本地运行Python脚本时,代码需要调用第三方包,需要根据任务使用的资源组不同,采用不同方式在资源组上准备第三方包环境:
说明您在创建第三方包时,需选择支持
Python 2
和Python 3
的安装包类型。
使用限制
EMR Shell节点使用限制,详情请参见EMR Shell节点使用限制。
通用Shell节点使用限制,详情请参见通用Shell节点使用限制。
通过Shell类型节点执行Python脚本
DataWorks支持通过通用Shell节点或EMR Shell节点引用资源来执行Python脚本。不同Python版本访问路径不一样,例如:
Python 2:
python xx.py
。Python 3:
/home/tops/bin/python3 xx.py
。
下面为您详细介绍两种访问路径的使用方法,您可以根据业务需求选择合适的节点方式来执行Python脚本。
通用Shell节点执行Python脚本
新建资源。
进入数据开发页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
新建MaxCompute Python资源。
在数据开发页面右键单击目标业务流程,选择新建资源,在MaxCompute目录下选择Python资源,输入资源名称
mc.py
进行创建。说明mc.py
为示例资源名称,您可根据实际业务情况进行调整。编辑MaxCompute Python资源。
进入MaxCompute Python资源节点编辑页面,开发节点代码,示例如下:
Python 3示例脚本
print('This is a test text')
Python 2示例脚本
print "This is a test text"
单击与,保存并提交资源。
引用资源。
新建通用Shell节点。
在数据开发页面右键单击目标业务流程,选择新建节点,在通用目录下选择Shell节点进行创建。
引用资源。
进入通用Shell节点编辑页面,在
节点下,找到待引用资源mc.py
,右键选择引用资源。通用Shell节点出现以下内容,引用成功。
结果验证。
在通用Shell节点中用Python 3执行引用资源
编辑通用Shell节点。
在通用Shell节点中添加Python 3命令执行路径。
##@resource_reference{"mc.py"} /home/tops/bin/python3 mc.py
点击,选择资源组与自定义的镜像信息,执行通用Shell节点任务。结果如下:
在通用Shell节点中用Python 2执行引用资源
编辑通用Shell节点。
在通用Shell节点中添加Python 2命令执行路径。
##@resource_reference{"mc.py"} python mc.py
点击,选择资源组与自定义的镜像信息,执行通用Shell节点任务。结果如下:
EMR Shell节点执行Python脚本
新建资源。
进入数据开发页面。
登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的 ,在下拉框中选择对应工作空间后单击进入数据开发。
新建EMR File资源。
在数据开发页面右键单击目标业务流程,选择新建资源,在EMR目录下选择File资源,选择存储路径并点击上传本地的
emr.py
脚本。示例脚本内容如下:Python 3示例脚本
print('This is a test text')
Python 2示例脚本
print "This is a test text"
说明emr.py
为示例资源名称,您可根据实际业务情况进行调整。单击提交资源。
引用资源。
新建EMR Shell节点。
在数据开发页面右键单击目标业务流程,选择新建节点,在EMR目录下选择EMR Shell节点进行创建。
引用EMR File资源。
进入EMR Shell节点编辑页面,在
节点下,找到待引用资源emr.py
,右键选择引用资源。EMR Shell节点出现以下内容,引用成功。
结果验证。
在EMR Shell节点中用Python 3执行引用资源
编辑EMR Shell节点。
在EMR Shell节点中添加Python 3命令执行路径
/home/tops/bin/python3
。##@resource_reference{"emr.py"} /home/tops/bin/python3 emr.py
点击,选择资源组与自定义的镜像信息,执行EMR Shell节点任务。结果如下:
在EMR Shell节点中用Python 2执行引用资源
编辑EMR Shell节点。
在EMR Shell节点中添加Python 2命令执行路径
python
。##@resource_reference{"emr.py"} python emr.py
点击,选择资源组与自定义的镜像信息,执行EMR Shell节点任务。结果如下: