在创建作业过程中,支持在作业参数中设置时间变量通配符。
变量通配符格式
E-MapReduce 所支持的变量通配符的格式为${dateexpr-1d} 或者 ${dateexpr-1h} 的格式。例如,假设当前时间为“20160427 12:08:01”:
如果在作业参数中写成 ${yyyyMMdd HH:mm:ss-1d},那么这个参数通配符在真正执行的时候会被替换成 “20160426 12:08:01”,即在当前日期上减了一天并精确到了秒。
如果写成 ${yyyyMMdd-1d},则执行时会替换成 “20160426”, 表示当前日期的前一天。
如果写成 ${yyyyMMdd},则会被替换成“20160427”,直接表示当前的日期。
dateexpr 表示标准的时间格式表达式,对应的时间会按照该表达式指定的格式进行格式化,后面可以再跟上对应加减的时间。支持表达式后面的加减 1d(加减1天),也可以写成加减 N 天或者加减 N 小时,例如${yyyyMMdd-5d}、${yyyyMMdd+5d}、${yyyyMMdd+5h}、${yyyyMMdd-5h}都可以支持,对应的替换方式和前面描述的一致。
注意:目前 E-MapReduce 仅支持小时和天维度的加减,即只支持在 dateexpr 后面 +Nd、-Nd、+Nh、-Nh 的形式(dateexpr 为时间格式表达式,N 为整数)。
示例
下图作业中的[backcolor=transparent]应用参数在实际执行时会被替换成:
- [backcolor=transparent]jar ossref[backcolor=transparent]:[backcolor=transparent]//emr/jar/hadoop/hadoop_wc.jar com.aliyun.emr.WordCount oss://emr/output/pt=20160426