Формат временной метки Apache Pig ToDate UDF

Я использую 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


person Pradeep S    schedule 30.11.2015    source источник


Ответы (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