Hive之數據類型


 

基礎數據類型與java數據類型一致

整型

TINYINT — 微整型,只占用1個字節,只能存儲0-255的整數。

SMALLINT– 小整型,占用2個字節,存儲范圍–32768 到 32767。

INT– 整型,占用4個字節,存儲范圍-2147483648到2147483647。

BIGINT– 長整型,占用8個字節,存儲范圍-2^63到2^63-1。

Float和double

float : 單精度浮點數    double : 雙精度浮點數

兩者的主要區別如下:

1.在內存中占有的字節數不同

單精度浮點數在機內存占4個字節

雙精度浮點數在機內存占8個字節

2.有效數字位數不同

單精度浮點數有效數字8位

雙精度浮點數有效數字16位

3.數值取值范圍

單精度浮點數的表示范圍:-3.40E+38~3.40E+38

雙精度浮點數的表示范圍:-1.79E+308~-1.79E+308

4.在程序中處理速度不同

一般來說,CPU處理單精度浮點數的速度比處理雙精度浮點數快,如果不聲明,默認小數為double類型,所以如果要用float的話,必須進行強轉

例如:float  a=1.3; 會編譯報錯,正確的寫法 float a = (float)1.3;或者float a = 1.3f;(f或F都可以不區分大小寫)。

timestamps

新增timestamps可以是整數,也就是距離unix新紀元時間(1970年1月1日午夜12點)的秒數;也可以是浮點數,即距離unix新紀元時間的秒數,精確到納秒(小數點后9位);還可以是字符串,即JDBC所約定的時間字符串格式,格式為YYYY-MM-DD hh:mm:ss.fffffffff。

Timestamps表示utc協調世界時。不同時區互相轉換內置函數to_utc_timestamps和from_utc_timestamps。

集合數據類型

Struct,對象,定義struct(street:string,city:string,zip:int)

Map,鍵值對,定義map(string,float)

Array,數組,定義array(string)

數據類型轉換

Cast(s as int)

說明:如果轉換格式不規則會返回null,建議優先使用取整函數轉換


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM