如何根据标志使用带有输入路径的Oozie动作

时间:2015-02-09 13:52:24

标签: conditional-statements oozie

我有一个oozie动作,它有一个已定义的输入路径。如果此路径不存在,我想将输入设置为某个默认路径。

有没有办法让路径取决于条件?我知道我可以为每个可能的输入复制动作,并且具有路由到正确动作的条件。但是,当有许多条件路径时,这是不可扩展的。

2 个答案:

答案 0 :(得分:4)

您可以拥有一个决策节点,如下所示。如果找到输入路径但未找到,则控制您的操作。如果找到,您可以使用操作中的路径。如果未找到,则在具有控件的下一个操作中设置默认输入路径。

<decision name="isFileExists">
         <switch>
            <case to="yourNextAction">
              ${fs:exists(yourInputPath)}
            </case>
            <default to="yourNextActionIfInputNotFound" />
         </switch>
</decision>

答案 1 :(得分:3)

Oozie允许您使用EL表达式,其中包括条件运算符?:。这使得在指定路径不存在时实现默认路径非常简单:

${fs:exists(specified_path) ? specified_path : default_path}