Hive里的數據類型


基本數據類型

HIVE MySQL JAVA 長度 例子
TINYINT TINYINT byte 1byte有符號整數 2
SMALINT SMALINT short 2byte有符號整數 20
INT INT int 4byte有符號整數 20
BIGINT BIGINT long 8byte有符號整數 20
BOOLEAN boolean 布爾類型,true或者false TRUE FALSE
FLOAT FLOAT float 單精度浮點數 3.14159
DOUBLE DOUBLE double 雙精度浮點數 3.14159
STRING VARCHAR string 字符系列。可以指定字符集。可以使用單引號或者雙引號。 ‘now is the time’ “for all good men”
TIMESTAMP TIMESTAMP 時間類型
BINARY BINARY 字節數組

對於Hive的String類型相當於數據庫的varchar類型,該類型是一個可變的字符串,不過它不能聲明其中最多能存儲多少個字符,理論上它可以存儲2GB的字符數。

做一個數據類型測試

create table person(id int , name string, weight double ,money bigint);

insert into table person values(1001,'yanban',60,100000000000);

集合數據類型

集合數據類型測試
array,map,struct

songsong,bingbing_lili,xiao song:18_xiaoxiao song:19,hui long guan_beijing_10010
yangyang,caicai_susu,xiao yang:18_xiaoxiao yang:19,chao yang_beijing_10011

create table test(
name string,
friends array<string>,
children map<string,int>,
address struct<street:string,city:string,emaill:int>
)
row format delimited fields terminated by ','    --字段分隔符
collection items terminated by '_'               --集合元素分隔符
map keys terminated by ':'                       --map的kv分隔符
lines terminated by '\n';                        --行分隔符

查 songsong 的第一個朋友 xiao song 年齡 ,郵編

select name,friends[0],children['xiao song'],address.email from test where name ='songsong';

select name,friends[0],children['xiao song'],address.email from test;

查 songsong 的第一個朋友,第一個孩子 ,郵編

select name,friends[0],map_keys(children)[0],address.email from test where name ='songsong';
select name,friends[0],map_values(children)[0],address.email from test where name ='songsong';

Hive 里面的類型轉換

1. double在Hive里面是最大 string可以轉成double
2. 強制類型轉化  cast('1' as type)   


免責聲明!

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



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