在 Pig 中,我有一个语句,基本上将日期附加到我生成的值中。
Data = FOREACH Input GENERATE (CurrentTime()),FLATTEN(group), COUNT(guid)oas Cnt;
输出给了我日期2013-05-25T09:01:38.914-04:00
在 ISO8601 中。
我怎样才能做到这一点"YYYY-MM-DD"
?
您有多种选择:
用 Pig 函数转换它:
E.g:
A = load ...
B = foreach A {
currTime = CurrentTime();
year = (chararray)GetYear(currTime);
month = (chararray)GetMonth(currTime);
day = (chararray)GetDay(currTime);
generate CONCAT(CONCAT(CONCAT(year, '-'), CONCAT(month, '-')),day) as myDate;
}
或者将日期作为参数传递给脚本:
pig -f script.pig -param CURR_DATE=`date +%Y-%m-%d`
或者在脚本中声明它:
%declare CURR_DATE `date +%Y-%m-%d`;
然后将该变量引用为'$CURR_DATE'
在脚本中。
您还可以创建一个modifiedCurrentTime UDF,您可以在其中使用以下命令将 DateTime 对象转换为适当的格式乔达时间图书馆。
最简单的方法是在脚本的开头声明日期。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)