oozie中時間EL表達式


EL表達式:

常量表示形式 含義說明
${coord:minutes(int n)} 返回日期時間:從一開始,周期執行n分鍾
${coord:hours(int n)} 返回日期時間:從一開始,周期執行n * 60分鍾
${coord:days(int n)} 返回日期時間:從一開始,周期執行n * 24 * 60分鍾
${coord:months(int n)} 返回日期時間:從一開始,周期執行n * M * 24 * 60分鍾(M表示一個月的天數)
${coord:endOfDays(int n)} 返回日期時間:從當天的最晚時間(即下一天)開始,周期執行n * 24 * 60分鍾
${coord:endOfMonths(1)} 返回日期時間:從當月的最晚時間開始(即下個月初),周期執行n * 24 * 60分鍾
${coord:current(int n)} 返回日期時間:從一個Coordinator動作(Action)創建時開始計算,第n個dataset實例執行時間
${coord:dataIn(String name)} 在輸入事件(input-events)中,解析dataset實例包含的所有的URI
${coord:dataOut(String name)} 在輸出事件(output-events)中,解析dataset實例包含的所有的URI
${coord:offset(int n, String timeUnit)} 表示時間偏移,如果一個Coordinator動作創建時間為T,n為正數表示向時刻T之后偏移,n為負數向向時刻T之前偏移,timeUnit表示時間單位(選項有MINUTE、HOUR、DAY、MONTH、YEAR)
${coord:hoursInDay(int n)} 指定的第n天的小時數,n>0表示向后數第n天的小時數,n=0表示當天小時數,n<0表示向前數第n天的小時數
${coord:daysInMonth(int n)} 指定的第n個月的天數,n>0表示向后數第n個月的天數,n=0表示當月的天數,n<0表示向前數第n個月的天數
${coord:tzOffset()} ataset對應的時區與Coordinator Job的時區所差的分鍾數
${coord:latest(int n)} 最近以來,當前可以用的第n個dataset實例
${coord:future(int n, int limit)} 當前時間之后的dataset實例,n>=0,當n=0時表示立即可用的dataset實例,limit表示dataset實例的個數
${coord:nominalTime()} nominal時間等於Coordinator Job啟動時間,加上多個Coordinator Job的頻率所得到的日期時間。例如:start=”2009-01-01T24:00Z”,end=”2009-12-31T24:00Z”,frequency=”${coord:days(1)}”,frequency=”${coord:days(1)},則nominal時間為:2009-01-02T00:00Z、2009-01-03T00:00Z、2009-01-04T00:00Z、…、2010-01-01T00:00Z
${coord:actualTime()} Coordinator動作的實際創建時間。例如:start=”2011-05-01T24:00Z”,end=”2011-12-31T24:00Z”,frequency=”${coord:days(1)}”,則實際時間為:2011-05-01,2011-05-02,2011-05-03,…,2011-12-31
${coord:user()} 啟動當前Coordinator Job的用戶名稱
${coord:dateOffset(String baseDate, int instance, String timeUnit)} 計算新的日期時間的公式:newDate = baseDate + instance * timeUnit,如:baseDate=’2009-01-01T00:00Z’,instance=’2′,timeUnit=’MONTH’,則計算得到的新的日期時間為’2009-03-01T00:00Z’。
${coord:formatTime(String timeStamp, String format)}    格式化時間字符串,format指定模式

 

常用表達式:

昨天:  ${coord:formatTime(coord:dateOffset(coord:nominalTime(),-1,'DAY'),'yyyy-MM-dd')}

上月:  ${coord:formatTime(coord:dateOffset(coord:nominalTime(),-1,'MONTH'),'yyyy-MM')}

 注意: 上面一定要大寫DAY,MONTH

參考文章:

http://shiyanjun.cn/archives/684.html

http://www.cnblogs.com/en-heng/p/5581331.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM