您好,登錄后才能下訂單哦!
這篇文章主要介紹“Spark Sql中FROM_UNIXTIME和UNIX_TIMESTAMP怎么使用”,在日常操作中,相信很多人在Spark Sql中FROM_UNIXTIME和UNIX_TIMESTAMP怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Spark Sql中FROM_UNIXTIME和UNIX_TIMESTAMP怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
眾所周知,數字整型用來大小比較和計算運算要比字符型快的多,因此部分業務需要把時間字段轉化為整型方便業務的快速計算和到達,這個整形數字是選定的日期距UTC 時間 '1970-01-01 00:00:00' 開始的秒數,目前為十位,比如常用來舉例的1234567890,但畢竟數字不方便觀察,后續還需要把這些時間數字轉換為真正的時間字段
這里就需要兩個函數來進行轉換UNIX_TIMESTAMP和FROM_UNIXTIME
咱們一一介紹
是把時間字段轉化為整型,需要注意的是有些數據庫需要指明時間字段類型
比如MySQL里是可以直接UNIX_TIMESTAMP('20200223'),而某些大數據平臺需要UNIX_TIMESTAMP('20200223','yyyyMMdd')
顧名思義就是從整型里把時間整型進行破解成想要的時間格式,使用時可指定格式
這里面經常用到的是UNIX_TIMESTAMP和FROM_UNIXTIME的結合,比如對一個時間字段進行歸集計算:把'2020-02-23 01:00:02','2020-02-23 01:02:31','2020-02-23 01:03:22'都歸集成'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
補充下格式轉換:
%a 縮寫星期名 %b 縮寫月名 %c 月,數值 %D 帶有英文前綴的月中的天 %d 月的天,數值(00-31) %e 月的天,數值(0-31) %f 微秒 %H 小時 (00-23) %h 小時 (01-12) %I 小時 (01-12) %i 分鐘,數值(00-59) %j 年的天 (001-366) %k 小時 (0-23) %l 小時 (1-12) %M 月名 %m 月,數值(00-12) %p AM 或 PM %r 時間,12-小時(hh:mm:ss AM 或 PM) %S 秒(00-59) %s 秒(00-59) %T 時間, 24-小時 (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 位
到此,關于“Spark Sql中FROM_UNIXTIME和UNIX_TIMESTAMP怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。