大數(shù)據(jù)Spark Sql中日期轉(zhuǎn)換FROM_UNIXTIME和UNIX_TIMESTAMP的使用
眾所周知,數(shù)字整型用來大小比較和計(jì)算運(yùn)算要比字符型快的多,因此部分業(yè)務(wù)需要把時(shí)間字段轉(zhuǎn)化為整型方便業(yè)務(wù)的快速計(jì)算和到達(dá),這個(gè)整形數(shù)字是選定的日期距UTC時(shí)間'1970-01-01 00:00:00'開始的秒數(shù),目前為十位,比如常用來舉例的1234567890,但畢竟數(shù)字不方便觀察,后續(xù)還需要把這些時(shí)間數(shù)字轉(zhuǎn)換為真正的時(shí)間字段
這里就需要兩個(gè)函數(shù)來進(jìn)行轉(zhuǎn)換UNIX_TIMESTAMP和FROM_UNIXTIME
咱們一一介紹
UNIX_TIMESTAMP
是把時(shí)間字段轉(zhuǎn)化為整型,需要注意的是有些數(shù)據(jù)庫(kù)需要指明時(shí)間字段類型
比如MySQL里是可以直接UNIX_TIMESTAMP('20200223'),而某些大數(shù)據(jù)平臺(tái)需要UNIX_TIMESTAMP('20200223','yyyyMMdd')
FROM_UNIXTIME
顧名思義就是從整型里把時(shí)間整型進(jìn)行破解成想要的時(shí)間格式,使用時(shí)可指定格式
這里面經(jīng)常用到的是UNIX_TIMESTAMP和FROM_UNIXTIME的結(jié)合,比如對(duì)一個(gè)時(shí)間字段進(jìn)行歸集計(jì)算:把'2020-02-23 01:00:02','2020-02-23 01:02:31','2020-02-23 01:03:22'都?xì)w集成'2020-02-23 01:00:00'
select FROM_UNIXTIME(unix_timestamp('20200223')+5*60*floor((substr('2020-02-23 00:01:02',12,2)*60+substr('2020-02-23 00:01:02',15,2))/5)) time1
補(bǔ)充下格式轉(zhuǎn)換:
%a 縮寫星期名 %b 縮寫月名 %c 月,數(shù)值 %D 帶有英文前綴的月中的天 %d 月的天,數(shù)值(00-31) %e 月的天,數(shù)值(0-31) %f 微秒 %H 小時(shí) (00-23) %h 小時(shí) (01-12) %I 小時(shí) (01-12) %i 分鐘,數(shù)值(00-59) %j 年的天 (001-366) %k 小時(shí) (0-23) %l 小時(shí) (1-12) %M 月名 %m 月,數(shù)值(00-12) %p AM 或 PM %r 時(shí)間,12-小時(shí)(hh:mm:ss AM 或 PM) %S 秒(00-59) %s 秒(00-59) %T 時(shí)間, 24-小時(shí) (hh:mm:ss) %U 周 (00-53) 星期日是一周的第一天 %u 周 (00-53) 星期一是一周的第一天 %V 周 (01-53) 星期日是一周的第一天,與 %X 使用 %v 周 (01-53) 星期一是一周的第一天,與 %x 使用 %W 星期名 %w 周的天 (0=星期日, 6=星期六) %X 年,其中的星期日是周的第一天,4 位,與 %V 使用 %x 年,其中的星期一是周的第一天,4 位,與 %v 使用 %Y 年,4 位 %y 年,2 位
到此這篇關(guān)于大數(shù)據(jù)Spark Sql中日期轉(zhuǎn)換FROM_UNIXTIME和UNIX_TIMESTAMP的使用的文章就介紹到這了,更多相關(guān)Spark Sql 日期轉(zhuǎn)換內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。