2013-06-06 5 views
3

У меня есть данные JSON, как показано ниже: Мне нужно преобразовать эту дату или mongo_date в utc timestamp, проанализировать данные в кусте в соответствии с примером временной шкалы в год, в месяц, в неделю используя карту уменьшитьКак конвертировать ISO Date в UTC date в Hive

{ 
    "_id" : ObjectId("51ac77050e9edcdad271ce2d"), 
    "company" : null, 
    "date" : "19760224", 
    "mongo_date" : ISODate("1976-02-24T00:00:00Z") 
+0

Привет, вы нашли какой-либо обходной путь для использования mongo_date с существующими UDF, как час или минут? Поскольку месяц, неделя и день работают с этими UDF, но после «T» он игнорирует hh: mm: ssZ. Тпх – Maziyar

ответ

3

Hive понимает этот формат: 'yyyy-MM-dd HH: mm: ss.SSS'. Для UTC метки времени вы можете конвертировать, просто заменяя «T» с пространством (»«) и извлекая „Z“:

from_unixtime(unix_timestamp(
    concat(substr('2014-01-29T18:15:12.429Z',1,10),' ', 
     substr('2014-01-29T18:15:12.429Z',12,12) 
     ),'yyyy-MM-dd HH:mm:ss.SSS') 
      ) 

Обнаружили более элегантное решение.

select from_unixtime(UNIX_TIMESTAMP("2017-01-01T05:01:10Z", "yyyy-MM-dd'T'HH:mm:ss'Z'"),"yyyy-MM-dd HH:mm:ss"); 

OK 
2017-01-01 05:01:10 

Смотреть это: jira

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