In Pig, I have a statement which basically appends the date to my generated values.
Data = FOREACH Input GENERATE (CurrentTime()),FLATTEN(group), COUNT(guid)oas Cnt;
The output gives me the date 2013-05-25T09:01:38.914-04:00
in ISO8601.
How can I make this just as "YYYY-MM-DD"
?
You have several options:
Convert it with Pig functions :
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;
}
OR pass the date to the script as a parameter:
pig -f script.pig -param CURR_DATE=`date +%Y-%m-%d`
OR declare it in script:
%declare CURR_DATE `date +%Y-%m-%d`;
Then refer to the variable as '$CURR_DATE'
in the script.
You may also create a modified CurrentTime UDF in which you convert the DateTime object to the appropriate format with the Joda-Time library.
The easiest would be to declare the date in the beginning of the script.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With