hive数据类型及其数据转换
由于需要使用hive sql进行数据查询,同时涉及多个不同类型的字段的组合,看Hive sql的文档相关和资料才知道,hive是支持大部分基础数据类型之间的相互转换的。
那么,hive本身支持哪些数据类型呢?
从hive内置数据类型中,Hive支持的数据类型包括以下这些:
数据类型 |
所占字节 |
开始支持版本 |
|
TINYINT |
1byte,-128 ~ 127 |
|
|
SMALLINT |
2byte,-32,768 ~ 32,767 |
|
|
INT |
4byte,-2,147,483,648 ~ 2,147,483,647 |
|
|
BIGINT |
8byte,-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
|
|
BOOLEAN |
|
|
|
FLOAT |
4byte单精度 |
|
|
DOUBLE |
8byte双精度 |
|
|
STRING |
|
|
|
BINARY |
|
从Hive0.8.0开始支持 |
|
TIMESTAMP |
|
从Hive0.8.0开始支持 |
|
DECIMAL |
|
从Hive0.11.0开始支持 |
|
CHAR |
|
从Hive0.13.0开始支持 |
|
VARCHAR |
|
从Hive0.12.0开始支持 |
|
DATE |
|
从Hive0.12.0开始支持 |
以及一些数据数据类型:包括array数组,map键值对,struct结构体,union联合等。
可以看到,hive对平时用到的数据类型都有所支持。
其中部分基础数据类型支持隐式转换,意味着在使用过程中可以直接把源类型作为目标类型来使用,支持数据类型隐式的类型包括:
|
boolean |
tinyint |
smallint |
int |
bigint |
float |
double |
decimal |
string |
varchar |
timestamp |
date |
binary |
boolean |
true |
false |
false |
false |
false |
false |
false |
false |
false |
false |
false |
false |
false |
tinyint |
false |
true |
true |
true |
true |
true |
true |
true |
true |
true |
false |
false |
false |
smallint |
false |
false |
true |
true |
true |
true |
true |
true |
true |
true |
false |
false |
false |
int |
false |
false |
false |
true |
true |
true |
true |
true |
true |
true |
false |
false |
false |
bigint |
false |
false |
false |
false |
true |
true |
true |
true |
true |
true |
false |
false |
false |
float |
false |
false |
false |
false |
false |
true |
true |
true |
true |
true |
false |
false |
false |
double |
false |
false |
false |
false |
false |
false |
true |
true |
true |
true |
false |
false |
false |
decimal |
false |
false |
false |
false |
false |
false |
false |
true |
true |
true |
false |
false |
false |
string |
false |
false |
false |
false |
false |
false |
true |
true |
true |
true |
false |
false |
false |
varchar |
false |
false |
false |
false |
false |
false |
true |
true |
true |
true |
false |
false |
false |
timestamp |
false |
false |
false |
false |
false |
false |
false |
false |
true |
true |
true |
false |
false |
date |
false |
false |
false |
false |
false |
false |
false |
false |
true |
true |
false |
true |
false |
binary |
false |
false |
false |
false |
false |
false |
false |
false |
false |
false |
false |
false |
true |
如果hive不支持该类型的转换,在使用CAST进行转换时,就会报错:
如将bigint转换为binary
CAST((9223372036854775807-unix_timestamp()) as binary)
过往记忆总结的很好,上面的内容也多半出自此处,并进行了一定的加工汇总。
相关文章
- 18C dataguard主库添加pdb,数据文件名没有自动转换unname
- 转换嵌套JSON数据为TABLE
- 485转换芯片
- 29树、二叉树、森林的转换
- gis数据格式转换(数据导入)ConvertFeaCls
- iconv字符编码转换
- 【Python】数据转换利器
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- 大数据在云计算中转换的4个步骤
- Oracle(转换函数)
- 备战蓝桥 之 16个必会的Python内置函数(3)——数据转换与计算(详细语法参考 + 参数说明 + 具体示例),详解max()函数实例 | 编程实现当前内存使用情况的监控
- 【Python基础】列表的基本操作:列表的数据统计、排序、遍历 || 关键字、函数、方法 || 列表的应用场景 || 元组的定义、循环遍历、应用场景 || 格式化字符 || 元组和列表之间的转换
- 【MySQL】查询中,NULL值转换为空字符串
- 证书转换-SSL证书生成:cer,jks文件 韩俊强的博客
- postgres数据库中的数据转换
- 将时间序列转换为监督学习数据
- 大数据Spark “蘑菇云”行动前传Scala专家之路第28课:Scala隐式转换内幕实践解密
- windows 关闭简体繁体转换
- biomaRt使用 | 同源基因名转换 | 人鼠同源基因ID
- 数据架构简史:转换中的范式
- 关于Char* ,CString ,WCHAR*之间的转换问题
- C# 对象数据转换Json帮助类 JsonHelp
- 关于Char* ,CString ,WCHAR*之间的转换问题
- C#使用Newtonsoft.Json进行json数据存储和转换
- c---数据类型强制转换
- json格式传递日期数据前端无法转换解决办法
- 在Linux命令行中进行大小写字符转换
- 大数据在云计算中转换的4个步骤
- C++转换unicode utf-8 gb2312编码