2016-08-23 120 views
1

想要做this但反過來。使用Spark SQL從ISO 8601解析datetime

我的date s是這種格式YYYY-MM-DDThh:mm:ss,我想要兩個列YYYY-MM-DDhh:mm,我可以concat,如果我想,爲某些查詢。

使用convert()時出現錯誤;我認爲目前Spark SQL不支持。

當我使用date(datetime)timestamp(datetime)時,我得到所有返回的空值。但是,minute(datetime)hour(datetime)工作。

目前,採用這種

concat(date,' ', hour,':', (case when minute < 10 then concat('0',minute) else minute end)) as DateTime 
from (select OtherDateOnlyColumn as date, minute(datetime) as minute, hour(datetime) as hour from ...) 

這顯然是效率不高。

回答

0

我只是想用日期()在此查詢和它的作品:

select date(datetime) from df 

也許在你的表中的日期是字符串類型;你應該檢查各列的數據類型與

DESCRIBE your_table 

如果日期是字符串類型,你可以使用cast(datetime as timestamp) as newTimestamp它可在Spark SQL到datetime轉換回時間戳類型和使用的date_format(newTimestamp, 'YYYY-MM-dd hh:mm')變種從那裏。

相關問題