hive支援基本資料型別和複雜資料型別。
一、基本資料型別(primitive types)
hive表中的每一列都關聯著乙個資料型別。以下是hive中支援的基本資料型別:
整數tinyint 1位元組整數
smallint 2位元組整數
int 4位元組整數
bigint 8位元組整數
布林型別boolean - true/false
浮點數float 單精度
double 雙精度
字串型別string
這些資料型別按照以下的層級結構進行組織(父型別是所有子型別例項的超類)
型別等級定義了在查詢時型別如何隱式的進行轉換。在hive中,支援從子型別到祖先型別的隱式轉換(implicit conversion)。
這種型別的分層定義了在查詢時型別如何隱式的進行轉換。隱式轉換(implicit conversion)是允許從子型別的祖先。因此,當乙個查詢表示式期望的是type1型別,而資料實際上是type2型別,type2型隱式轉換為type1(如果type1是type2的型別層次的祖先)。請注意,型別層次結構允許字串隱式轉換為double。
顯式型別轉換(explicit type conversion)可以通過強轉操作符(cast operator)完成。
複雜資料型別
復合型別型別(complex types)
復合型別可以從原始型別以及其他復合型別的基礎上建立起來:
structs:這個型別中的元素可以通過"."來訪問。例如有乙個列c的型別為struct ,則a可以通過"c.a"的方式進行訪問
maps(鍵值對):其內部元素可以通過 ['element name'] 的方式進行訪問。例如有乙個map m,其包含乙個對映"group"->gid,則gid可以通過m['group']這種方式來訪問。
arrays (有序列表):陣列中的元素必須是同一種型別。陣列中的元素可以通過下標來訪問,下標從0開始。例如對於乙個陣列a,其元素值為 ['a', 'b', 'c'],那麼 a[1]返回'b'。
複雜資料型別通過基本資料型別和構造方法來建立。例如乙個user型別可能含有以下兩個字段:gender - which is a string.
active - which is a boolean.
Hive 建表 插入資料 插入復合型別
新建hive表 create table test a timestamp b struct 下面可選 row format delimited fields terminated by t stored as parquet 檢視建好的表的結構 hive show create table tes...
hive中的復合資料型別
array中的資料為相同型別,例如,假如array a中元素 a b c 則a 1 的值為 b 資料結構如下 zhangsan beijing,shanghai,tianjin,hangzhou wangwu shanghai,chengdu,wuhan,haerbin create table c...
hive型別轉換
一 hive型別之間的轉換 1 隱式轉換 1 可以由小的型別轉換為大的型別,比如從int到bigint,byte到int,int,到string 2 整形,float 和 string都可以轉換為double 3 boolean型別不可以轉換為任何型別 boolean為 true和false 2 顯...