Python节点支持Python3语法(不支持Python2语法),您可以在该节点中直接使用Python代码,并进行作业的周期性调度。本文为您介绍如何通过DataWorks实现Python任务的配置和调度。
前提条件
-
RAM账号添加至对应空间(可选)。
进行任务开发的RAM账号已被添加至对应工作空间中,并具有开发或空间管理员(权限较大,谨慎添加)角色权限。添加成员并授权,详情请参见为工作空间添加空间成员。
-
对应空间已绑定Serverless资源组。详情请参见:使用Serverless资源组。
-
进行Python节点开发前,需创建对应的Python节点,详情请参见:创建调度工作流的节点。
注意事项
-
运行该任务时,若使用Serverless资源组,单任务支持最大配置
64CU,但建议不超过16CU,以避免CU过大导致资源不足,影响任务启动。 -
Python节点仅具备Python代码基础运行环境,如您需要在Python代码中引用第三方包,请创建自定义镜像,在镜像中安装相关依赖后,再运行Python节点。
步骤一:开发Python节点
-
Python节点开发。
-
编辑Python代码。
以下代码为简单的冒泡排序。
def bubble_sort(arr): n = len(arr) # 外层循环控制每一次遍历 for i in range(n): # 内层循环进行相邻元素的比较和交换 for j in range(0, n-i-1): # 如果当前元素大于下一个元素,则交换 if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr # 测试代码 if __name__ == "__main__": example_list = [64, 34, 25, 12, 22, 11, 90] sorted_list = bubble_sort(example_list) print("排序后的列表:", sorted_list)
-
-
完成代码开发后,在右侧单击运行配置,选择调试运行所需的资源组等配置后,即可单击
运行按钮,对代码进行测试运行。说明Python节点的调试和调度仅支持使用Serverless资源组,请确保当前工作空间已绑定Serverless资源组。详情请参见:使用Serverless资源组。
-
完成Python节点脚本开发与测试后,需对Python节点进行调度配置,以实现Python节点的周期运行。
-
(可选)配置调度参数。
Python节点通过命令行方式接收调度参数。您可以在调度参数配置区域按顺序添加参数值,多个参数使用空格分隔。在代码中通过
sys.argv[1]、sys.argv[2]等索引依次获取参数值。说明Python节点与PyODPS节点不同,不支持通过变量名直接引用参数(如 $var1),必须使用
sys.argv显式读取。-
定义参数示例
$[yyyymmdd] abc -
使用参数示例
import sys # 打印所有接收到的参数 print("当前接收的全部参数:", sys.argv) # 获取第一个和第二个参数 param1 = sys.argv[1] param2 = sys.argv[2] print("参数1:", param1) print("参数2:", param2)
更多调度参数配置说明,请参见调度参数来源及其表达式。
-
-
完成任务调度配置后,需对节点进行保存后,才可进行下一步操作。
步骤二:节点发布与运维
-
完成调度配置后,即可对已完成的Python节点提交发布至生产环境。
-
发布完成的任务,将按照您配置的任务调度进行周期运行,可在中查看已发布的周期任务,并对任务进行运维操作,详情请参见:运维中心入门。
个人开发环境开发任务
个人开发环境支持Python编程,如需使用个人开发环境编辑Python节点任务,详情请参见个人开发环境。
通过关联角色运行节点
支持配置节点关联角色,使用特定RAM角色运行节点任务,实现权限的细粒度控制和安全管控。