Я использую ToDate UDF в свинье для создания поля даты и времени. Вводится в формате гггг-мм-дд. ToDate(sch_trans_dt,'yyyy-MM-dd','Etc/GMT+7') генерирует значение с двоеточием в поле отметки времени как 2015-11-26T00:00:00.000-07:00 Есть ли способ избежать двоеточия в отметке времени и сделать сгенерированное значение как 2015-11-26T00:00:00.000-0700
Формат временной метки Apache Pig ToDate UDF
Ответы (1)
Ссылка: http://pig.apache.org/docs/r0.12.0/func.html#to-string
Тип возвращаемого значения функции ToDate — объект DateTime (формат ISO 8601). Чтобы преобразовать это в настраиваемый строковый формат, мы можем использовать функцию ToString, указав требуемую строку формата в качестве второго параметра.
Сценарий свиньи:
A = LOAD 'input.csv' AS (datestring:chararray);
B = FOREACH A GENERATE ToString(ToDate(datestring,'yyyy-MM-dd','Etc/GMT+7'),'yyyy-MM-dd\'T\'hh:ss:mm.SZ');
DUMP B;
Ввод:
2015-11-26
Вывод:
(2015-11-26T12:00:00.0-0700)
person
Murali Rao
schedule
01.12.2015