在Oozie Hive操作中的EL Expression中检查变量是否存在

时间:2015-08-19 14:26:21

标签: hadoop hive el oozie

我正在尝试为Oozie工作流创建一个通用模板,用于运行不同的配置单元脚本。每个配置单元脚本都有自己的参数。

在Oozie的Hive Action中,在使用PARAM标签设置参数时,我需要检查变量是否存在,如果它不存在,我需要将其默认为" &#34 ;.

我试过了,
< param> my_parameter_var = $ {empty my_parameter?" ":my_parameter}< / param>

这只能检查my_parameter是空字符串还是空字符串。如果变量根本不存在,则此检查失败;出现以下错误:

错误代码:EL_ERROR
错误消息:变量[my_parameter]无法解析

有人可以帮助我解决这个问题吗?

1 个答案:

答案 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

感谢。