我正在尝试为Oozie工作流创建一个通用模板,用于运行不同的配置单元脚本。每个配置单元脚本都有自己的参数。
在Oozie的Hive Action中,在使用PARAM标签设置参数时,我需要检查变量是否存在,如果它不存在,我需要将其默认为" &#34 ;.
我试过了,
< param> my_parameter_var = $ {empty my_parameter?" ":my_parameter}< / param>
这只能检查my_parameter是空字符串还是空字符串。如果变量根本不存在,则此检查失败;出现以下错误:
错误代码:EL_ERROR
错误消息:变量[my_parameter]无法解析
有人可以帮助我解决这个问题吗?
答案 0 :(得分:5)
我不确定这是否仍然需要,但为了以防万一,有一种结合 firstNotNull 和 wf:conf EL功能的方法,如下所示。从开头和结尾删除 param 元素中的空格。
< param> my_parameter_var = $ {firstNotNull(wf:conf(' my_parameter'),'')}< / param>
如果NOT empty / null / undefined或返回空字符串,wf:conf 将返回my_parameter的值。参考:https://oozie.apache.org/docs/3.2.0-incubating/WorkflowFunctionalSpec.html#a4.2.3_Workflow_EL_Functions
firstNotNull 如果非空/ null或返回第二个参数值,则返回第一个参数值。参考:https://oozie.apache.org/docs/3.2.0-incubating/WorkflowFunctionalSpec.html#a4.2.1_Basic_EL_Constants
感谢。