Python节点
更新时间: 2023-12-20 10:49:50
阅读 194
离线开发提供Python节点,可以在该节点中直接编辑python代码,并进行python任务的周期调度设置。
代码编辑器
在代码编辑器可进行python代码的编写。支持python语法提示和语法高亮功能
说明:使用python节点进行开发时,需要提前联系运维人员在azkaban机器上安装开发所需的python环境。 |
参数使用
Python节点支持使用用户自定义输入参数,用法如下:
azprops是python任务运行时由系统注入的配置字典,内部包含了节点/任务所添加的输入参数、参数组、资源组以及系统参数(系统参数包括事件参数、任务关键字等内容);用户使用脚本时,需要通过 azprops['key']方式获取,例如 azprops['azkaban.flow.1.days.ago’];
节点输出参数
python节点不支持直接使用${outputs1[0][0]}来获得上游输出参数中指定某行某列的数据。若需使用,则除了添加上游节点输出参数外,还需要额外添加自定义参数。
示例:若上游输出参数为output1,则需要额外添加自定义参数key1,并设置其参数取值为“${outputs1[0][0]}”,表示取上游输入参数output1的查询结果中第1行第1列数据。
Python 代码检查配置
python的代码检查借鉴了linkis的相关设计,关键数据存储在三个表中。具体字段参见表描述。
表名 | 描述 |
---|---|
cluster_exception_msg | 代码检查规则对应的报错信息 |
source_code_check_rule | 代码检查规则,正则 |
source_code_check_rule_interrupt_level | 对面检查规则中断执行的默认级别 |
如何新增规则?
在 cluster_exception_msg 表中插入对应的异常信息。
INSERT INTO `cluster_exception_msg` (`code`, `en_msg`, `cn_msg`, `param_num`) values (20100, 'can not use sys module', '不能使用sys模块', 0);
在 source_code_check_rule 表中插入对应的规则,需要确定 代码类型、规则级别等字段。例如:
INSERT INTO `source_code_check_rule` (`code_type`, `rule_level`, `check_rule`, `exception_msg_code`) values ('PYTHON', 'ERROR', 'import\\s+sys', 对应异常信息的ID);
如果表 source_code_check_rule_interrupt_level 中没有对应代码类型的中断级别,需要新增,例如:
INSERT INTO `source_code_check_rule_interrupt_level` (`code_type`, `rule_level`) values ('PYTHON', 'ERROR');
重启所有的Azkaban executor。
如何关闭规则?
- 在 source_code_check_rule 表中找到对应规则,把 rule_level字段的级别 (ERROR、WARING、INFO)调整到大于 source_code_check_rule_interrupt_level 中对应代码类型的中断规则即可。例如: Python 默认的中断级别是 ERROR,需要把对应的规则调整成 WARING或INFO。
update source_code_check_rule set rule_level = "INFO" where id = 对应的规则id;
- 重启所有的Azkaban executor。
文档反馈
以上内容对您是否有帮助?