2016-05-17 12 views
0

Я хочу, чтобы преобразовать следующее значение, которое является chararray в свиньюКак конвертировать chararray в дату с миллисекунды в свинью латинскими

2016-05-11 23:59:57.628197 

в

2016-05-11T23:59:57.628-05:00 

Как я могу это сделать?

Ниже я попытался с учетом иначе 'a2' содержит список значений даты и времени в chararray в колонке под названием 'input_date_value'

FOREACH a2 GENERATE input_date_value AS input_date:chararray, 
         ToDate(input_date_value,'YYYY-MM-DD HH:mm:ss.SSSSSS') AS modification_datetime:datetime; 

Для ввода -

2002-07-11 16:58:40.249764 

Выход есть -

2002-01-11T16:58:40.249-05:00 

Значения месяца, такие как '07', не собираются, Созданная временная метка имеет месяц, установленный на 01 'i.e. January каждый раз для всех дат.

Может кто-то помочь. Что я делаю не так ?

ответ

0

Спасибо всем за их замечательные предложения , Я попытался исправить в формате даты шаблона и удалось (на рис 0.11)

Используется символ нижнего регистра D вместо капитала D для разбора значений даты и это все ...

Apparhently компоненты формата даты, упомянутые здесь для разбора месяц и дата неверны или просто не поддерживается на рис 0.11, как mentioned- https://www.w3.org/TR/NOTE-datetime

'YYYY-мМ дд HH: мм: ss.SSSSSS'

вместо

'YYYY-ММ DD HH: мм: ss.SSSSSS'

Это теперь дает правильный вывод -

2001- -28T16: 04: 49.223-05: 00

для ввода -

2001- -28 16: 04: 49,22388

1

https://pig.apache.org/docs/r0.11.1/func.html#to-date ToDate принимает SimpleDateFormat поддерживает только миллисекунды http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html

-05: 00 Вы видите часовой пояс ToDate фактически обрезан до 3-х цифр, так как он поддерживает только миллисекунды

+0

Спасибо за ваш ответ Викас. Вы неправильно истолковали вопрос, мой друг. Я знаю, что он усекает миллисекунды только на три цифры. Проблема заключается в анализе значения месяца из chararray и генерации его в datetime только определенного месяца. Не могли бы вы вернуться и ответить сейчас? – nitinr708

+0

Получил это Я думаю, что это как-то связано с разбором в ToDate, дайте мне проверить и обновить –

+0

Похож на ошибку, какой бы месяц вы ее не проходили, показывает, как у меня есть то, что у меня есть, - это версия свиньи .012, какую версию у вас есть? –

 Смежные вопросы

  • Нет связанных вопросов^_^