在我的數據處理場景我有「YY」一年格式一些源數據路徑郵戳:表達式語言得到格式化Oozie的同步數據集定義
/user/${user.name}/${YEAR我知道這是一個糟糕的設計,因爲'YY'到最後,而YEAR已經存在於路徑中,但這是它在我們當前的系統中的作用,我們不能改變它一段時間。
<datasets>
<dataset name="hourlyds" frequency="${ds_frequency}"
initial-instance="${ds_initial_instance}" timezone="${ds_timezone}">
<uri-template>${baseFsURI}/${YEAR}/${MONTH}/${DAY}/alpha_${coord:formatTime(coord:actualTime(),'yy')}</uri-template>
OR (tried one at a time)
<uri-template>${baseFsURI}/${YEAR}/${MONTH}/${DAY}/alpha_${coord:formatTime(coord:nominalTime(),'yy')}</uri-template>
<done-flag>${doneFlag}</done-flag>
</dataset>
</datasets>
2個EL都沒有工作。即使是一個非嵌套的,沒有任何數據名稱前綴EL表達式失敗:
<uri-template>${baseFsURI}/${YEAR}/${MONTH}/${DAY}/${coord:nominalTime()}</uri-template>
每次它拋出以下錯誤時間:
Error: E1004: Expression language evaluation error [Unable to evaluate :${baseFsURI}/${YEAR}/${MONTH}/${DAY}/${coord:nominalTime()}: ], java.lang.Exception: Unable to evaluate :${baseFsURI}/${YEAR}/${MONTH}/${DAY}/${coord:nominalTime()}:
我如何得到這個「YY」中的數據集的格式? EL以外的任何方式都可以實現它?
在此先感謝,
拉胡爾
感謝回答克里斯。實際上,我在問題中提到的是一個目錄,$ {DAY}中可以有多個這樣的目錄。 –
rahul67
因此,使用' $ {coord:dataIn('hourlyds')} /某些數據集名稱_ * '。這確實意味着你不能使用doneflag元素,儘管 –
沒錯。顯然,我們需要更好地將我們的系統標準化以獲得更好的數據路徑,除非Oozie也將這個EL特徵帶入數據集標籤中。 – rahul67