如何根据标志使用带输入路径的 Oozie 动作
How to use Oozie action with input path depending on flag
我有一个 oozie 操作,它具有定义的输入路径。如果此路径不存在,我想将输入设置为某个默认路径。
有没有办法根据条件设置路径?我知道我可以为每个可能的输入复制操作,并有一个条件可以路由到正确的操作。但是,当有很多条件路径时,这是不可扩展的。
您可以有一个决策节点,如下所示。如果找到和未找到输入路径,您可以在其中控制您的操作。如果找到,您可以在操作中使用该路径。如果未找到,则在下一个具有控制权的操作中设置默认输入路径。
<decision name="isFileExists">
<switch>
<case to="yourNextAction">
${fs:exists(yourInputPath)}
</case>
<default to="yourNextActionIfInputNotFound" />
</switch>
</decision>
Oozie 允许您使用 EL 表达式,其中包括条件运算符 ?:
。当指定路径不存在时,这使得实现默认路径变得相当直接:
${fs:exists(specified_path) ? specified_path : default_path}
我有一个 oozie 操作,它具有定义的输入路径。如果此路径不存在,我想将输入设置为某个默认路径。
有没有办法根据条件设置路径?我知道我可以为每个可能的输入复制操作,并有一个条件可以路由到正确的操作。但是,当有很多条件路径时,这是不可扩展的。
您可以有一个决策节点,如下所示。如果找到和未找到输入路径,您可以在其中控制您的操作。如果找到,您可以在操作中使用该路径。如果未找到,则在下一个具有控制权的操作中设置默认输入路径。
<decision name="isFileExists">
<switch>
<case to="yourNextAction">
${fs:exists(yourInputPath)}
</case>
<default to="yourNextActionIfInputNotFound" />
</switch>
</decision>
Oozie 允许您使用 EL 表达式,其中包括条件运算符 ?:
。当指定路径不存在时,这使得实现默认路径变得相当直接:
${fs:exists(specified_path) ? specified_path : default_path}