首页 > 运维 > linux运维 > 正文

hive学习笔记之一:基本数据类型

爱谁谁
发布: 2025-07-09 12:14:27
原创
494人浏览过

欢迎访问我的github《hive学习笔记》系列导航,涵盖了基本数据类型、复杂数据类型、内部表和外部表、分区表、分桶表、hiveql基础、内置函数、sqoop基础、用户自定义函数(udf)、用户自定义聚合函数(udaf)和用户自定义表生成函数(udtf)等内容。《hive学习笔记》系列秉承作者一贯的风格,通过实战来学习和了解hive。作为构建在hadoop之上的数据仓库框架,hive用于数据提取、转换和加载,这是一种能够存储、查询和分析存储在hadoop中的大规模数据的机制。hive数据仓库工具可以将结构化的数据文件映射为数据库表,并提供sql查询功能,将sql语句转换为mapreduce任务执行。(摘自《hadoop应用开发实战详解(修订版)》)其架构如下图所示,最终还是通过执行mapreduce来实现:

hive学习笔记之一:基本数据类型

环境信息如下:

本文对应的环境信息如下:

  • CentOS Linux release 7.5.1804
  • JDK:1.8.0_191
  • Hadoop:2.7.7
  • Hive:1.2.2

关于Hive的部署,需要先部署Hadoop环境,请参考《Linux部署Hadoop 2.7.7集群》。Hadoop部署成功后,安装和体验Hive请参考《安装和体验Hive》。

数据类型简介:

Hive支持基本和复杂数据类型:

  • 基本数据类型:包括数值型、布尔型、字符串类型和时间戳类型;
  • 复杂数据类型:数组、映射、结构。

基本数据类型可以通过思维导图来分类和理解:

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 可变长度字符串,需要声明最大长度(1到65535之间) 'a', "a"
CHAR 固定长度字符串 'a', "a"
BINARY 字节数组 -
TIMESTAMP 精度到纳秒的时间戳 '2020-03-01 00:00:00'
DATE 日期 '2020-01-01'

关于三种字符串类型:

  • STRING:变长,无需最大长度声明,理论上能存储2GB字符;
  • VARCHAR:变长,需要声明最大长度(1到65535之间),例如VARCHAR(100);
  • CHAR:定长,如CHAR(100)。

常用类型综合实战:

启动Hive,进入交互模式,执行以下语句建表,字段类型是常用的几种:

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语句新增一条记录:

知周AI笔记
知周AI笔记

一款本地轻量级markdown AI笔记软件

知周AI笔记 53
查看详情 知周AI笔记
insert into t1 values (101, 'a101', true, '2020-01-01', '2020-03-01 00:00:00');
登录后复制

使用函数,在新增的记录的时候,将timestamp_field字段设置为当前时间,注意和前面的insert语句比较一下,使用函数时必须用到select XXX from XXX limit 1这样的语法:

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)
登录后复制

将DATE字段转为TIMESTAMP:

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)
登录后复制

将TIMESTAMP字段转为DATE:

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)
登录后复制

将TIMESTAMP字段转为BIGINT:

select unix_timestamp(timestamp_field) from t1;
登录后复制

响应:

hive> select unix_timestamp(timestamp_field) from t1;
OK
1583020800
1603802555
Time taken: 0.059 seconds, Fetched: 2 row(s)
登录后复制

至此,Hive的基本数据类型已经了解,接下来的章节我们将一起学习和了解复杂数据类型。

以上就是hive学习笔记之一:基本数据类型的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号