Datetime 如何在oozie作业工作流中比较决策操作中的日期

Datetime 如何在oozie作业工作流中比较决策操作中的日期,datetime,workflow,action,oozie,Datetime,Workflow,Action,Oozie,我有3个脚本要在一个Oozie作业中处理。说工作a、b和c。 b和c已经运行了几天,比如11-1。我还想包括一个,这样将来它们中的三个将并行运行。 对于工作a,我希望它能赶上过去b和c已经完成的工作。我也给出了11-1的开始时间,所以a将从11-1开始运行。 在这里,我给出决策行动: <switch> <case to="eadp-hive-bf4-old"> ${TIMESTAMPnow} gt ${TIMESTAMP} </cas

我有3个脚本要在一个Oozie作业中处理。说工作a、b和c。 b和c已经运行了几天,比如11-1。我还想包括一个,这样将来它们中的三个将并行运行。 对于工作a,我希望它能赶上过去b和c已经完成的工作。我也给出了11-1的开始时间,所以a将从11-1开始运行。 在这里,我给出决策行动:

<switch>
    <case to="eadp-hive-bf4-old">
        ${TIMESTAMPnow} gt ${TIMESTAMP}
    </case>
    <default to="eadp-hive-bf4-events"/>
</switch>

${TIMESTAMP now}gt${TIMESTAMP}
我想让它做的是,当当前时间大于标称时间时,只运行一次; 当当前时间与默认的标称时间相同时,运行所有3个作业

gt比较(大于)工作不正常,
也不工作

有一个isDir EL我可以用来检查b和c的旧作业的确切目录,但是由于我使用datetime作为分区,路径的datetime部分不是一个好模式,而且没有合适的字符串函数来执行子字符串

是否有一种方法可以比较工作流操作中的当前日期时间和标称日期时间,从而做出正确的决策


谢谢。

您应该将表达式放在${…}中,并且时间戳应该是可比较的(长字符串或ISO字符串)。例如:

${TIMESTAMPnow gt TIMESTAMP}