Hive系列 (五):Hive数据类型

Hive系列文章

Hadoop完全分布式搭建(腾讯云服务器+阿里云服务器)

Hive系列 (一):Hive搭建

Hive系列 (二):Hive基础知识

Hive系列 (三):开窗函数详解

Hive系列 (四):自定义函数UDF UDTF UDAF

Hive系列 (五):Hive数据类型

Hive系列 (六):Hive数据类型转换

Hive系列 (七):Hive常用函数

Hive系列 (八):Hive中的explode 与 lateral view

Hive系列 (九):Hive数据存储

Hive系列 (十):Hive调优

概述

Hive 的内置数据类型可以分为两大类:

  1. 基础数据类型;

  2. 复杂数据类型;

基础数据类型

其中,基础数据类型包括:TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY,TIMESTAMP,DECIMAL,CHAR,VARCHAR,DATE。

Numeric Types

数据类型 介绍 备注
TINYINT 1 字节有符号整数,从-128127
SMALLINT 2 字节有符号整数,从-32,76832,767
INT/INTEGER 24字节有符号整数,从-2,147,483,6482,147,483,647
BIGINT 8 字节有符号整数,从-9,223,372,036,854,775,8089,223,372,036,854,775,807
BOOLEAN
FLOAT 4 字节单精度浮点数
DOUBLE 8 字节双精度浮点数
DOUBLEPRECISION alias for DOUBLE 从Hive2.2.0开始支持
DECIMAL 精度为 38 位 在 Hive 0.11.0中引入,精度为 38 位, Hive 0.13.0引入了用户可定义的精度和比例
NUMERIC 等同于DECIMAL DECIMAL相同,从Hive 3.0.0开始支持

Date/Time Types

数据类型 介绍 备注
TIMESTAMP 时间戳 从 Hive 0.8.0开始可用
DATE 日期 从 Hive 0.12.0开始可用
INTERVAL 用作时间加减 从 Hive 1.2.0开始可用

String Types

数据类型 介绍 备注
STRING 存储变长文本,长度无限制
VARCHAR 有长度限制,不定长,在1-65355之间 从 Hive 0.12.0开始可用
CHAR 长度比varchar短很多,定长1-255 从 Hive 0.13.0开始可用

Misc Types

数据类型 介绍 备注
BOOLEAN 布尔值
BINARY 二进制类型 从 Hive 0.8.0开始可用

复杂数据类型

数据类型 介绍 备注
ARRAY 数组:ARRAY<data_type> 从 Hive 0.14开始可用
MAP MAP<primitive_type, data_type> 从 Hive 0.14开始可用
STRUCT STRUCT<col_name : data_type [COMMENT col_comment], …>
UNION UNIONTYPE<data_type, data_type, …> 从 Hive 0.7.0开始可用

Array Types

Array的结构

创建数据文件arryTest.txt

[hadoop@master data]$ vim arryTest.txt

添加以下内容, 注意行末的tab

1,2,3,4 you,are,a,boy	
5,6,7,8 she,is,a,girl	

建表myhive.arraytest

[hadoop@master sql_script]$ vim arrayTest.sql

脚本如下:

create table myhive.array_test(
        id array<int>,
        info array<string>
)
row format delimited
fields terminated by '\t'
collection items terminated by ',';
~      

插入数据

0: jdbc:hive2://master:10000> LOAD DATA LOCAL INPATH '/opt/export/data/arryTest.txt' OVERWRITE INTO TABLE myhive.array_test;
Loading data to table myhive.array_test
OK
No rows affected (8.416 seconds) 

查看数据

0: jdbc:hive2://master:10000> select * from myhive.array_test;
OK
+----------------+--------------------------+
| array_test.id  |     array_test.info      |
+----------------+--------------------------+
| [1,2,3,4]      | ["you","are","a","boy"]  |
| [5,6,7,8]      | ["she","is","a","girl"]  |
+----------------+--------------------------+
2 rows selected (3.943 seconds)

Array操作
# size() 计算长度
0: jdbc:hive2://master:10000> select size(id),size(info) from myhive.array_test;
OK
+------+------+
| _c0  | _c1  |
+------+------+
| 4    | 4    |
| 4    | 4    |
+------+------+
2 rows selected (3.454 seconds)

# 注意下表是从0开始
0: jdbc:hive2://master:10000> select id[2],info[4] from myhive.array_test;
OK
+------+-------+
| _c0  |  _c1  |
+------+-------+
| 3    | NULL  |
| 7    
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值