全部產品
Search
文件中心

E-MapReduce:作業日期設定

更新時間:Jul 01, 2024

在作業編輯的過程中,支援在作業參數中設定時間變數萬用字元。

變數萬用字元格式

E-MapReduce所支援的變數萬用字元的格式為${dateexpr-1d}或者${dateexpr-1h}。其中dateexpr表示標準的時間格式運算式,對應的規則如下。
重要 請注意時間格式的大小寫。
格式描述
yyyy表示4位的年份。
MM表示月份。
dd表示天。
HH表示24小時制,12小時制使用hh。
mm表示分鐘。
ss表示秒。
時間變數可以是包含yyyy年份的任意時間組合,同時支援用加號(+)和減號(-)來分別表示延後和提前。例如,變數${yyyy-MM-dd}表示當前日期,則:
  • 後1年的表示方式:${yyyy+1y}或者${yyyy-MM-dd hh:mm:ss+1y}
  • 後3月的表示方式:${yyyyMM+3m}或者${yyyy-MM-dd hh:mm:ss+3m}
  • 前5天的表示方式:${yyyyMMdd-5d}或者${yyyy-MM-dd hh:mm:ss-5d}
例如,假設目前時間為20160427 12:08:01:
  • 如果在作業參數中寫成${yyyyMMdd HH:mm:ss-1d},那麼這個參數萬用字元在真正執行的時候會被替換成20160426 12:08:01,即在當前日期上減了一天並精確到了秒。
  • 如果寫成${yyyyMMdd-1d},則執行時會替換成20160426, 表示當前日期的前一天。
  • 如果寫成${yyyyMMdd},則會被替換成20160427,直接表示當前的日期。
說明
  • 目前E-MapReduce僅支援小時和天維度加減,即只支援在dateexpr後面+Nd、-Nd、+Nh、-Nh的形式(dateexpr為時間格式運算式,N為整數)。
  • 時間變數參數必須以yyyy開始,如${yyyy-MM}。如果希望單獨擷取月份等特定時間地區的值,可以在作業內容中使用如下兩個函數提取:
    • parseDate(<參數名稱>, <時間格式>):將給定參數轉換為Date對象。其中,參數名稱為上述配置參數中設定的一個變數名,時間格式為設定該變數時所使用的時間格式。如設定一個變數current_time = ${yyyyMMddHHmmss-1d},則此處時間格式應設定為yyyyMMddHHmmss。
    • formatDate(<Date對象>, <時間格式>):將給定Date對象轉換為給定格式的時間字串。
    函數使用樣本:
    • 擷取current_time變數的小時字面值:${formatDate(parseDate(current_time, 'yyyyMMddHHmmss'), 'HH')}
    • 擷取current_time變數的年字面值:${formatDate(parseDate(current_time, 'yyyyMMddHHmmss'), 'yyyy')}

操作樣本

  1. 進入資料開發的專案列表頁面。
    1. 通過阿里雲帳號登入阿里雲E-MapReduce控制台
    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組
    3. 單擊上方的資料開發頁簽。
  2. 專案列表頁面,單擊目標專案所在行的作業編輯
  3. 進行作業設定。
    1. 作業編輯頁面,選擇需要操作的作業名稱,單擊右上方的作業設定
    2. 配置參數地區,單擊add表徵圖,新增參數,並按照上文介紹的變數萬用字元格式填寫參數。
      date_example

      配置完成後就可以在作業中引用配置參數的Key了。