这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
本文对应的环境信息如下:
Hive支持基本和复杂数据类型:
类型 | 描述 | 示例 |
---|---|---|
BOOLEAN | true/false | TRUE |
TINYINT | 1字节有符号整数,从-128到127 | 1Y |
SMALLINT | 2字节有符号整数,从-32768到32767 | 1S |
INT | 4字节有符号整数,从-2147483648到2147483647 | 1 |
BIGINT | 8字节有符号整数,从-9223372036854775808到9223372036854775807 | 1L |
FLOAT | 4字节单精度浮点数 | 1.0 |
DOUBLE | 8字节(64位)双精度浮点数 | 1.0 |
DECIMAL | 任意精度有符号小数 | 1.0 |
STRING | 无上限可变长度字符串 | ‘a’, “a” |
VARCHAR | 可变长度字符串 | ‘a’, “a” |
CHAR | 固定长度字符串 | ‘a’, “a” |
BINARY | 字节数组 | - |
TIMESTAMP | 精度到纳秒的时间戳 | ‘2020-03-01 00:00:00’ |
DATE | 日期 | ‘2020-01-01’ |
create table t1(
int_field INT,
string_field STRING,
boolean_field BOOLEAN,
date_field DATE,
timestamp_field TIMESTAMP
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;
insert into t1
values
(101, 'a101', true, '2020-01-01', '2020-03-01 00:00:00');
insert into t1
select
103, 'a103', true, '2020-01-01', current_timestamp()
from t1 limit 1;
hive> select * from t1;
OK
101 a101 true 2020-01-01 2020-03-01 00:00:00
103 a103 true 2020-01-01 2020-10-27 20:42:35.729
Time taken: 0.062 seconds, Fetched: 2 row(s)
select unix_timestamp();
响应:
hive> select unix_timestamp();
OK
1603802631
Time taken: 0.028 seconds, Fetched: 1 row(s)
select cast(date_field as timestamp) from t1;
响应:
hive> select cast(date_field as timestamp) from t1;
OK
2020-01-01 00:00:00
2020-01-01 00:00:00
Time taken: 0.051 seconds, Fetched: 2 row(s)
select to_date(timestamp_field) from t1;
响应:
hive> select to_date(timestamp_field) from t1;
OK
2020-03-01
2020-10-27
Time taken: 0.063 seconds, Fetched: 2 row(s)
select to_date(timestamp_field) from t1;
响应:
hive> select to_date(timestamp_field) from t1;
OK
2020-03-01
2020-10-27
Time taken: 0.063 seconds, Fetched: 2 row(s)
至此,hive的基本数据类型已经了解,接下来的章节咱们一起学习了解复杂数据类型;