hive学习笔记之一:基本数据类型
发布时间 - 2025-07-09 00:00:00 点击率:次欢迎访问我的github《hive学习笔记》系列导航,涵盖了基本数据类型、复杂数据类型、内部表和外部表、分区表、分桶表、hiveql基础、内置函数、sqoop基础、用户自定义函数(udf)、用户自定义聚合函数(udaf)和用户自定义表生成函数(udtf)等内容。《hive学习笔记》系列秉承作者一贯的风格,通过实战来学习和了解hive。作为构建在hadoop之上的数据仓库框架,hive用于数据提取、转换和加载,这是一种能够存储、查询和分析存储在hadoop中的大规模数据的机制。hive数据仓库工具可以将结构化的数据文件映射为数据库表,并提供sql查询功能,将sql语句转换为mapreduce任务执行。(摘自《hadoop应用开发实战详解(修订版)》)其架构如下图所示,最终还是通过执行mapreduce来实现:
环境信息如下:
本文对应的环境信息如下:
- 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支持基本和复杂数据类型:
- 基本数据类型:包括数值型、布尔型、字符串类型和时间戳类型;
- 复杂数据类型:数组、映射、结构。
基本数据类型可以通过思维导图来分类和理解:
下面通过列表说明所有的基本数据类型:
| 类型 | 描述 | 示例 |
|---|---|---|
| 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 | 精度到纳秒的时间戳 | '2025-03-01 00:00:00' |
| DATE | 日期 | '2025-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语句新增一条记录:
insert into t1 values (101, 'a101', true, '2025-01-01', '2025-03-01 00:00:00');
使用函数,在新增的记录的时候,将timestamp_field字段设置为当前时间,注意和前面的insert语句比较一下,使用函数时必须用到select XXX from XXX limit 1这样的语法:
insert into t1 select 103, 'a103', true, '2025-01-01', current_timestamp() from t1 limit 1;
看一下新增的两条记录:
hive> select * from t1; OK 101 a101 true 2025-01-01 2025-03-01 00:00:00 103 a103 true 2025-01-01 2025-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 2025-01-01 00:00:00 2025-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 2025-03-01 2025-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的基本数据类型已经了解,接下来的章节我们将一起学习和了解复杂数据类型。
# linux
# centos
# git
# 工具
# sql语句
# 聚合函数
# red
# sql
# 架构
# 数据类型
# String
# select
# date
# timestamp
# 字符串
# 布尔型
# char
# 字符串类型
# github
# hadoop
# hive
# 数据库
# mapreduce
# sqoop
# 应用开发
# 思维导图
# 自定义
# 分区表
# 请参考
# 学习笔记
# 变长
# 定长
# 浮点数
# 可以通过
# 布尔
# 三种
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何登录建站主机?访问步骤全解析
网站图片在线制作软件,怎么在图片上做链接?
教学论文网站制作软件有哪些,写论文用什么软件
?
C#如何调用原生C++ COM对象详解
如何快速搭建自助建站会员专属系统?
高端企业智能建站程序:SEO优化与响应式模板定制开发
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
Laravel如何记录自定义日志?(Log频道配置)
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
,南京靠谱的征婚网站?
如何在腾讯云服务器快速搭建个人网站?
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
Laravel队列任务超时怎么办_Laravel Queue Timeout设置详解
javascript基本数据类型及类型检测常用方法小结
Laravel如何为API生成Swagger或OpenAPI文档
如何有效防御Web建站篡改攻击?
原生JS获取元素集合的子元素宽度实例
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
C++时间戳转换成日期时间的步骤和示例代码
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
如何打造高效商业网站?建站目的决定转化率
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
javascript中对象的定义、使用以及对象和原型链操作小结
如何用西部建站助手快速创建专业网站?
Java类加载基本过程详细介绍
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
零基础网站服务器架设实战:轻量应用与域名解析配置指南
Laravel如何创建自定义中间件?(Middleware代码示例)
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
如何快速生成ASP一键建站模板并优化安全性?
JavaScript如何操作视频_媒体API怎么控制播放
Android仿QQ列表左滑删除操作
高端云建站费用究竟需要多少预算?
专业商城网站制作公司有哪些,pi商城官网是哪个?
网站制作价目表怎么做,珍爱网婚介费用多少?
javascript如何操作浏览器历史记录_怎样实现无刷新导航
如何在企业微信快速生成手机电脑官网?
悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音
如何快速搭建FTP站点实现文件共享?
如何用免费手机建站系统零基础打造专业网站?
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
,网页ppt怎么弄成自己的ppt?
如何在阿里云高效完成企业建站全流程?

