1. 程式人生 > >Hive入門之資料型別

Hive入門之資料型別

基本資料型別

tinyint/smallint/int/bigint //整數型別
float/double //浮點數型別
boolean //布林型別
string //字串型別
案例1:
>create table person
(pid int,
pname string,
married boolean,
salary double);
案例2:
>create table test1
(vname varchar(20),
cname char(20));
//varchar(20)指vname列最大長度為20個字元
//char(20)指cname列固定長度為20,即使這一列不滿20個字元,也按照20來算。

複雜資料型別

Array               //

陣列型別(由一系列相同資料型別的元素組成)
Map                 //集合型別,包含key -> value鍵值對,可以通過key來訪問元素
Struct              //結構型別,可以包含不同資料型別元素。
案例1:Array型別
>create table student
(sid int,
sname string,
grade array<float>);
插入資料形式:
{1, 'Ada', [92, 93, 98]}
案例2:Map型別(key值相同,value將被覆蓋)
>create table student1
(sid int,
sname string,
grade map<string, float>);
插入資料形式:
{1, 'Tom', <'mathematics', 85>}
案例3:巢狀型別
create table student3
(sid int,
sname string,
grades array<map<string, float>>);
輸入資料形式:
{1, 'Tom', [<'mathematics', 98>, <'English', 90>]}
案例4:Struct資料型別
>create table student4
(sid int,
info struct<name:string,age:int,sex:string>);
輸入資料形式:
{1, {'Tom', 19, ''}}

時間資料型別

Datas

Timestamps

Timestamps型別:一種與時區無關的型別,各個時區表示方式是一樣的,儲存形式是一個偏移量(UNIX存在以來的偏移量)

案例:

>select unix_timestamp();               //將時間轉化為時間戳

Datas型別:與一般的資料庫(oracle)不同的是,不包含一天中的時間可以利用cast函式,DataTimestamp進行相互轉換。


後記:網課筆記