离线开发提供Python节点,可以在该节点中直接编辑python代码,并进行python任务的周期调度设置。

代码编辑器


代码编辑器可进行python代码的编写。支持python语法提示和语法高亮功能

说明:使用python节点进行开发时,可以使用azkaban机器上默认部署的python环境,也支持安装多个python环境,在python节点上选择所要使用的具体环境即可。若需安装自定义python环境,需要提前联系运维人员进行相关操作。

参数使用

Python节点支持使用用户自定义输入参数,用法如下:
azprops是python任务运行时由系统注入的配置字典,内部包含了节点/任务所添加的输入参数、参数组、资源组以及系统参数(系统参数包括事件参数、任务关键字等内容);用户使用脚本时,需要通过 azprops['key']方式获取,例如 azprops['azkaban.flow.1.days.ago’];
Python节点 - 图1

节点输出参数

python节点不支持直接使用${outputs1[0][0]}来获得上游输出参数中指定某行某列的数据。若需使用,则除了添加上游节点输出参数外,还需要额外添加自定义参数
示例:若上游输出参数为output1,则需要额外添加自定义参数key1,并设置其参数取值为“${outputs1[0][0]}”,表示取上游输入参数output1的查询结果中第1行第1列数据。 Python节点 - 图2

Python 代码检查配置

为避免出现未知异常,当在平台上运行python脚本时,系统会默认禁用部分模块。若需新增或关闭相关规则,需联系运维人员进行处理。

预置规则列表

默认禁用的函数列表如下:

规则名称 禁用模块的正则表达式
不允许用户导入sys模块 import\s+sys
from\s+sys\s+import\s+.
不允许用户导入os模块 import\s+os
from\s+os\s+import\s+.
不允许用户私自开启进程 import\s+multiprocessing
from\s+multiprocessing\s+import\s+.
import\s+subprocess
from\s+subprocess\s+import\s+.
不允许用户导入numpy包 from\s+numpy\s+import\s+.*
禁止用户stop sparkContext sc\.stop