Hive入门之数据类型

来源:互联网 发布:武汉理工大学网络教育 编辑:程序博客网 时间:2024/05/14 08:45

基本数据类型

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进行相互转换。




后记:网课笔记