我有一个oozie动作,它有一个已定义的输入路径。如果此路径不存在,我想将输入设置为某个默认路径。
有没有办法让路径取决于条件?我知道我可以为每个可能的输入复制动作,并且具有路由到正确动作的条件。但是,当有许多条件路径时,这是不可扩展的。
答案 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}