Date oozie创建一个日期为今天的参数

Date oozie创建一个日期为今天的参数,date,oozie,oozie-coordinator,Date,Oozie,Oozie Coordinator,如何使用格式的今天日期创建参数: yyyy-mm-dd 在奥齐。我将此变量传递给正在为该日期添加分区的配置单元脚本,我发现要使用以下方法创建的函数: 但我得到了一个错误: No function is mapped to the name "wf:timestamp" 另外,我只需要时间戳中的YYYY-MM-DD,没有子字符串函数也可以给我字符串的前10个字符。对于基本EL函数,您不需要添加wf,因此它应该是这样的 <param>DATE=${timestamp()}</p

如何使用格式的今天日期创建参数:

yyyy-mm-dd
在奥齐。我将此变量传递给正在为该日期添加分区的配置单元脚本,我发现要使用以下方法创建的函数:

但我得到了一个错误:

No function is mapped to the name "wf:timestamp"

另外,我只需要时间戳中的
YYYY-MM-DD
,没有子字符串函数也可以给我字符串的前10个字符。

对于基本EL函数,您不需要添加
wf
,因此它应该是这样的

<param>DATE=${timestamp()}</param>
DATE=${timestamp()}
如果您正在使用,那么可以使用simple将新参数添加到wf。 应该是这样的

<action>
        <workflow>
            <app-path>${appPath}</app-path>
            <configuration>
                        <property>
                            <name>reportDate</name>
                            <value>${coord:formatTime(coord:dateOffset(coord:nominalTime(), -1,
                                'DAY'), "yyyy-MM-dd")}
                            </value>
                        </property>
              </configuration>
        </workflow>
</action>

${appPath}
报告日期
${coord:formatTime(coord:dateOffset(coord:nominalTime(),-1,
“日”),“年-月-日”)}

您需要使用正则表达式从timestamp()函数中提取日期:

replaceAll(timestamp(),“(\\d{4}-\\d{2}-\\d{2})T\\d{2}:\\d{2}Z”,“$1”)

出于某种原因,timestamp()似乎以YYYY-MM-DDThh:mmZ格式返回日期(而不是如上所述的YYYY-MM-DDThh:MM:ss.sZ),这就是正则表达式如上所述的原因


这应该适合您,并且不需要使用协调器。

我从协调器尝试:
DATE${coord:formatTime(coord:dateOffset(coord:nominalTime(),-1,';DAY';),“yyyy-MM-dd”)}
我使用此日期在配置单元表中添加分区,它将分区值添加为:
dt=$%7BDATE}
这是我的配置单元命令:
ALTER table oozietest add IF NOT EXISTS partition(dt=“${date}”)LOCATION”/user/hello/${date
请将此添加到原始问题中。你试过我的答案了吗?这个答案应该被接受。我不认为你甚至可以有一个没有协调器的工作流。你肯定可以有一个没有协调器的工作流。我在oozie SLA标称时间使用${timestamp()}时遇到以下错误:E0803:IO错误,E1004:Expression language evaluation错误,验证错误:没有函数映射到名称“timestamp”有没有关于如何解决这个问题的建议?
<param>DATE=${timestamp()}</param>
<action>
        <workflow>
            <app-path>${appPath}</app-path>
            <configuration>
                        <property>
                            <name>reportDate</name>
                            <value>${coord:formatTime(coord:dateOffset(coord:nominalTime(), -1,
                                'DAY'), "yyyy-MM-dd")}
                            </value>
                        </property>
              </configuration>
        </workflow>
</action>