2013-06-06 131 views
3

我的JSON數據如下:我需要將該日期或mongo_date轉換爲utc時間戳,以按照每年,每月,每週的時間線示例分析hive中的數據使用地圖減少如何將ISO日期轉換爲Hive中的UTC日期

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

嗨,你有沒有發現任何解決方法使用mongo_date與像小時或分鐘現有的UDF?由於月,周和日與這些UDF一起工作,但在'T'之後它會忽略hh:mm:ssZ。 TNX – Maziyar

回答

3
蜂房

理解這一格式: 'YYYY-MM-DD HH:MM:SS.SSS'。對於UTC時間戳可以通過 只需更換與空間(」「),並刪除‘Z’T'轉換:

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