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)
过往记忆总结的很好,上面的内容也多半出自此处,并进行了一定的加工汇总。
hive数据类型及其数据转换的更多相关文章
- Hive基础之Hive数据类型
Hive数据类型 参考:中文博客:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843448.html 英文:https: ...
- [Hive_add_2] Hive 数据类型
Hive 数据类型 正常数据类型 # 整型,4个字节 int # 大整型,8个字节 bigint # 字符串,最大长度2G String 复杂数据类型 # 数组,相同类型元素的数组 array< ...
- Hive数据类型与文件存储格式
Hive数据类型 基础数据类型: TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY,TIMESTAMP,DECIMAL,CH ...
- Hive 数据类型及操作数据库
3. Hive 数据类型 3.1 基本数据类型 Hive 数据类型 Java 数据类型 长度 TINYINT byte 1 byte 有符号整数 SMALINT short 2 byte 有符号整数 ...
- Hive 数据类型 + Hive sql
Hive 数据类型 + Hive sql 基本类型 整型 int tinyint (byte) smallint(short) bigint(long) 浮点型 float double 布尔 boo ...
- 第3章 Hive数据类型
第3章 Hive数据类型 3.1 基本数据类型 对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储2GB ...
- hive数据类型学习
Hive的内置数据类型可以分为两大类:(1).基础数据类型:(2).复杂数据类型.其中,基础数据类型包括: TINYINT, SMALLINT, INT, BIGINT, BOOLEAN, FLOAT ...
- TypeScript学习笔记(二):基本数据类型及数据转换
数据类型 我们来看看TypeScript中的基本数据类型都有哪些. boolean 布尔值,支持true和false. var isDone: boolean = false; 默认为undefine ...
- 【2017-2-19】C#数据类型,数据转换,变量,常量,转义符
数据类型 一.基本数据类型 1.值类型(不可以为null) ⑴整型(可以为负数) byle,int,short,long(从小到大排列) 常用整型 int a=值(小于10位数) long b=值(1 ...
随机推荐
- .NET Core2.0+MVC 用session,cookie实现的sso单点登录
博主刚接触.NET Core2.0,想做一个单点登录的demo,所以参考了一些资料,这里给上链接: 1.http://www.cnblogs.com/baibaomen/p/sso-sequence- ...
- [HAOI2006]旅行
题目描述 Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N个景点(编号为1,2,3,…,N),这些景点被M条道路连接着,所有道路都是双向的,两个景点之间可能有多条道路.也 ...
- luogu 3413 SAC#1 - 萌数
题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数很萌! 好在在他眼里,并不是所有数都是萌的.只有满足“存在长度至少为2的回文子串”的数是萌的——也就是说,101是萌的,因为101本身就是一个回文数:1 ...
- [SDOI2016]排列计数
Description 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列恰好有 m 个数是 ...
- bzoj 5290: [Hnoi2018]道路
Description Solution PJDP毁青春 注意到性质:到根的道路不超过 \(40\) 条 所以我们只关系一个点上面的道路的情况就行了 设 \(f[x][i][j]\) 表示一个点 \( ...
- 为了异常安全(swap,share_ptr)——Effecive C++
互斥锁: 假设我们要在多线程中实现背景图片的控制: class PrettyMenu{ public: -- void changeBackground(std::istream& imgSr ...
- 【poj 1087 a plug for UNIX】
在大米饼的帮助下,终于找到了大米饼程序中如同大米饼一般的错误! 考点在问题转化,然后就跑一个你喜欢的最大流算法(二分图可以啵?) 再来一个例子吧: [纯手绘大米饼图片] 其中有的边权是1,否则就是in ...
- [bzoj4151][AMPPZ2014]The Cave
来自FallDream的博客,未经允许,请勿转载,谢谢. 给定一棵有n个节点的树,相邻两点之间的距离为1. 请找到一个点x,使其满足所有m条限制,其中第i条限制为dist(x,a[i])+dist(x ...
- java continue与break区别
在循环体中跳出循环语句有continue与break语句 continue:跳出本次循环,包括本次循环continue后面的语句, break:跳出循环体,就是说一遇到break循环就结束. 代码: ...
- Python-闭包详解
在函数编程中经常用到闭包.闭包是什么,它是怎么产生的及用来解决什么问题呢.给出字面的定义先:闭包是由函数及其相关的引用环境组合而成的实体(即:闭包=函数+引用环境)(想想Erlang的外层函数传入一个 ...