Python节点
离线开发提供Python节点,支持直接编写Python代码。目前支持直接使用Python、PySpark 2种方式执行。
代码编辑器
在代码编辑器中可进行python代码的编写,支持python语法提示和语法高亮功能。
使用python节点进行开发时,可以使用azkaban机器上默认部署的python环境,也支持安装多个python环境,在python节点上选择所要使用的具体环境即可。若需安装自定义python环境,需要提前联系运维人员进行相关操作。
如下图,为Python节点,其他设置的页面,这里选择的是Python执行:
如下图,为Python节点,其他设置的页面,这里选择的是PySpark执行:
其中,其它设置中关于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脚本时,系统会默认禁用部分模块。若需新增或关闭相关规则,需联系运维人员进行处理。
预置规则列表
默认禁用的函数列表如下:
规则名称 | 禁用模块的正则表达式 |
---|---|
不允许用户导入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 |
以上内容对您是否有帮助?