无法解析Oozie变量



在决策节点中传递变量时出现问题。参数在全局配置下声明

<global>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${yarnQueueName}</value>
</property>
<property>
<name>currentDate</name>
<value>${replaceAll(timestamp(), "T(\d{2}):(\d{2})Z", "")}</value>
</property>
</configuration>
</global>

但是当";currentDate";在决策节点下使用,无法解析。

<decision name="checkFile">
<switch>
<case to="an-email">
${fs:exists('/user/svc-pmdi/tmp/delta_Combination_'+currentDate+'.csv')}
</case>
<default to="end"/>
</switch>
</decision>

我遇到的错误错误代码:EL_Error错误消息:变量[currentDate]无法解析

我的第一个惊喜。。可能是在犯愚蠢的错误。请帮帮我。

您不应该在全局配置块中为workflow.xml声明参数。在您的情况下,您可以使内联,此外,您必须将"+"更改为concat((

<decision name="checkFile">
<switch>
<case to="an-email">
${fs:exists(concat(concat('/user/svc-pmdi/tmp/delta_Combination_', replaceAll(timestamp(), "T(\d{2}):(\d{2})Z", "")), '.csv'))}
</case>
<default to="end"/>
</switch>
</decision>

您可以在块<参数>在workflow.xml的开头。但是只有静态字符串可以存储在那里。文档链接:https://oozie.apache.org/docs/4.3.1/WorkflowFunctionalSpec.html#a4_Parameterization_of_Workflows

相关内容

  • 没有找到相关文章

最新更新