Hive数据类型

Hive数据类型

目录Hive数据类型整型:TINYINT、SMALLINT、INT、BIGINT(Hive常用)浮点:FLOAT、DOUBLE(Hive常用)布尔类型:BOOL (False/True)字符串:STRING(Hive常用)时间类型:时间戳 timestamp日期 date复杂数据类型array:有序集合map:struct:结构体:可自定义属性

Hive数据类型

整型:TINYINT、SMALLINT、INT、BIGINT(Hive常用)

浮点:FLOAT、DOUBLE(Hive常用)

布尔类型:BOOL (False/True)

字符串:STRING(Hive常用)

时间类型:

时间戳 timestamp

Timestamp 格式:(年-月-日 时-分-秒.毫秒)

“YYYY-MM-DD HH:MM:SS.fffffffff”(9位小数位精度)

举例时间戳标准格式:

2022-02-19 14:24:57.200

日期 date

DATE值描述特定的年/月/日

格式:

YYYY-MM-DD

举例日期标准格式:

2022-02-19

举例

#创建数据文件 touch testDate.txt;

#编辑数据文件内容 2022-02-19 14:24:57.200,2022-02-19

#建表

create table testdate(

ts timestamp

,dt date

) row format delimited fields terminated by ',';

#加载数据

load data local inpath '/usr/local/soft/data/testDate.txt' into testdate;

#查询

select * from testdata;

#查询结果(如果不是标准格式,查询结果将会是NULL)

2022-02-19 14:24:57.2 2022-02-19

时间戳与时间字符串转换

#from_unixtime 传入一个时间戳以及pattern(yyyy-MM-dd)可以将时间戳转换成对应格式的字符串

select from_unixtime(1630915221,'yyyy年MM月dd日 HH时mm分ss秒')

#unix_timestamp 传入一个时间字符串以及pattern(yyyy-MM-dd),可以将字符串按照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')

举例

使用from_unixtime将时间戳解析为字符串

(1)select from_unixtime(1630915701,'yyyy/MM/dd HH:mm:ss');

解析结果:

2021/09/06 16:08:21

使用unix_timestamp将字符串解析为时间戳

(1)select unix_timestamp('2021年09月06日 16时08分21秒');

解析结果:

NULL

(2)select unix_timestamp('2021年09月06日 16时08分21秒','yyyy年MM月dd日 HH时mm分ss秒'); //当在后面指定格式来解析,就可以解析出来

解析结果:

1630915701

(3)select unix_timestamp('2021-09-06 16:08:21.2');

解析结果:

1630915701

复杂数据类型

array:有序集合

#建表

create table testArray(

name string,

weight array #指定array数据类型

)row format delimited

fields terminated by '\t'

COLLECTION ITEMS terminated by ',';

#加载数据

文件数据:加载到表中

杨老板 140,160,180

张志凯 160,200,180

#查询获取

select * from testArray;

杨老板 ["140","160","180"]

张志凯 ["160","200","180"]

select name,weight[0] from testArray;

杨老板 140

张志凯 160

select name,weight[3] from testArray;

杨老板 NULL

张志凯 NULL

map:

key:value,key2:v2,k3:v3

#建表

create table scoreMap(

name string,

score map #

)ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t'

COLLECTION ITEMS TERMINATED BY ','

MAP KEYS TERMINATED BY ':';

#加载数据

小明 语文:91,数学:110,英语:40

小红 语文:100,数学:130,英语:140

#查询

select name,score from scoreMap;

小明 {“语文”:91,“数学”:110,“英语”:40}

小红 {“语文”:100,“数学”:130,“英语”:140}

select name,score['数学'] from scoreMap;

小明 110

小红 130

struct:结构体:可自定义属性

#建表

create table scoreStruct(

name string,

score struct

)ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t'

COLLECTION ITEMS TERMINATED BY ',';

#加载数据

小明 语文,91,000001,余老师

小红 数学,100,000002,体育老师

#查询

select * from scoreStruct;

小明 {"course":"语文","score":91,"course_id":1,"teacher":"余老师"}

小红 {"course":"数学","score":100,"course_id":2,"teacher":"体育老师"}

select name,score.teacher from scoreStruct;

小明 余老师

小红 体育老师

https://blog.csdn.net/woshixuye/article/details/53317009

// 相关文章

大家乐游戏攻略
365bet送彩金

大家乐游戏攻略

⌛ 08-03 ⚠️ 9418
电吉他音箱瓦数与音量大小之间的关系
亚洲365bet网站

电吉他音箱瓦数与音量大小之间的关系

⌛ 09-12 ⚠️ 8897
全境封锁各版本价格一览,看看哪个版本最划算?