Hive数据类型
基本数据类型
- 整型:TINYINT、SMALLINT、INT、BIGINT
- 浮点:FLOAT、DOUBLE
- 布尔类型:BOOL (False/True)
- 字符串:STRING
- 时间类型:
- 时间戳 timestamp
- 日期 date
create table testDate
(
ts timestamp
,dt date
)
row format delimited fields terminated by ',';
// 2022-02-19 14:24:57.200,2022-02-19
时间戳与时间字符串转换
from_unixtime 传入一个时间戳以及pattern(yyyy-MM-dd) 可以将 时间戳转换成对应格式的字符串。
select from_unixtime(1645360616,'yyyy年MM月dd日 HH时mm分ss秒');
unix_timestamp 传入一个时间字符串以及pattern,可以将字符串按照pattern转换成时间戳。
select unix_timestamp('2021年09月06日 16时00分21秒','yyyy年MM月dd日 HH时mm分ss秒');
select unix_timestamp('2021-01-14 14:24:57.200');
复杂数据类型
array
// 创建表
create table testArray
(
name string
,weight array<string>
)
row format delimited fields terminated by ',';
// 查询表
select name,weight[0] from testArray;
// 结果
汤姆 140 160
杰瑞 160 200
map
key:value,key2:v2,k3:v3
// 创建表
create table scoreMap
(
name string
,score map<string,int>
)
row format delimited fields terminated by ','
map keys terminated by ':';
// 查询表
select name,score['语文'] from scoreMap;
// 结果
汤姆 语文:91 NULL
杰瑞 语文:100 NULL
struct
// 创建表
create table scoreStruct(
name string,
score struct<course:string,score:int,course_id:int,teacher:String>
)ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ',';
// 查询表
select name,score.course,score.score from scorestruct;
// 结果
小明 语文 91
小红 数学 100
到底啦!关注靓仔学习更多的大数据知识。( •̀ ω •́ )✧