Hive之數據類型


(本文是基於多篇文章根據個人理解進行的整合,參考的文章見末尾的整理)

數據類型
 
        
Hive支持兩種數據類型,一類叫原子數據類型,一類叫復雜數據類型。原子數據類型包括數值型、布爾型和字符串類型,具體如下表所示:
原子數據類型包括數值型、布爾型和字符串類型,具體如下表所示:
 
        

基本數據類型

類型

描述

示例

TINYINT

1個字節(8位)有符號整數

1

SMALLINT

2字節(16位)有符號整數

1

INT

4字節(32位)有符號整數

1

BIGINT

8字節(64位)有符號整數

1

FLOAT

4字節(32位)單精度浮點數

1.0

DOUBLE

8字節(64位)雙精度浮點數

1.0

BOOLEAN

true/false

true

STRING

字符串

xia’,”xia”

 
        
  hive不支持日期類型,在hive里日期都是用字符串來表示的,而常用的日期格式轉化操作則是通過自定義函數進行操作。
  hive是用java開發的,hive里的基本數據類型和java的基本數據類型也是一一對應的,除了string類型。有符號的整數類型:TINYINTSMALLINTINTBIGINT分別等價於javabyteshortintlong原子類型,它們分別為1字節、 2字節、4字節和8字節有符號整數。Hive的浮點數據類型FLOATDOUBLE,對應於java的基本類型floatdouble類型。而hiveBOOLEAN類型相當於java的基本數據類型boolean
  對於hiveString類型相當於數據庫的varchar類型,該類型是一個可變的字符串,不過它不能聲明其中最多能存儲多少個字符,理論上它可以存儲2GB的字符數。
  Hive支持基本類型的轉換,低字節的基本類型可以轉化為高字節的類型,例如TINYINTSMALLINTINT可以轉化為FLOAT,而所有的整數類型、FLOAT以及STRING類型可以轉化為DOUBLE類型,這些轉化可以從java語言的類型轉化考慮,因為hive就是用java 編寫的。當然也支持高字節類型轉化為低字節類型,這就需要使用hive的自定義函數CAST了。
  復雜數據類型包括數組(ARRAY)、映射(MAP)和結構體(STRUCT),具體如下表所示:
 
        

復雜數據類型

類型

描述

示例

ARRAY

一組有序字段。字段的類型必須相同

Array(1,2)

MAP

一組無序的鍵/值對。鍵的類型必須是原子的,值可以是任何類型,同一個映射的鍵的類型必須相同,值得類型也必須相同

Map(‘a’,1,’b’,2)

STRUCT

一組命名的字段。字段類型可以不同

Struct(‘a’,1,1,0)

 
        

SQL 覆蓋范圍: SQL 92 with Extensions

http://static.oschina.net/uploads/space/2013/0901/134105_E6jf_568818.png

 

參考:

Hive介紹 http://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3114180.html
Hive的數據類型和數據模型 http://www.cnblogs.com/sharpxiajun/archive/2013/06/03/3114560.html
Hive內表與外表詳述 http://www.aboutyun.com/thread-7458-1-1.html
Hive基礎之分區和桶 http://my.oschina.net/leejun2005/blog/178631
Hive的體系結構 http://blog.csdn.net/zhoudaxia/article/details/8855937
Hive的元數據庫配置,metadata相關 http://www.2cto.com/database/201411/352706.html
Hadoop Hive SQL語法詳解 http://blog.csdn.net/hguisu/article/details/7256833
Hive幾種數據導入方式 http://www.iteblog.com/archives/94
Hive專欄 http://www.iteblog.com/archives/category/hive
Hive專欄 http://my.oschina.net/leejun2005/blog?catalog=384549
 


免責聲明!

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



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