由于需要使用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对平时用到的数据类型都有所支持。

同时,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

同时,我们可以使用CAST显式的将一个类型的数据转换成另外一个类型的数据。

如果hive不支持该类型的转换,在使用CAST进行转换时,就会报错:

如将bigint转换为binary

CAST((9223372036854775807-unix_timestamp()) as binary)


则会报“invalid cast from bigint to binary”错误。

过往记忆总结的很好,上面的内容也多半出自此处,并进行了一定的加工汇总。

hive数据类型及其数据转换的更多相关文章

  1. Hive基础之Hive数据类型

    Hive数据类型 参考:中文博客:http://www.cnblogs.com/ggjucheng/archive/2013/01/03/2843448.html          英文:https: ...

  2. [Hive_add_2] Hive 数据类型

    Hive 数据类型 正常数据类型 # 整型,4个字节 int # 大整型,8个字节 bigint # 字符串,最大长度2G String 复杂数据类型 # 数组,相同类型元素的数组 array< ...

  3. Hive数据类型与文件存储格式

    Hive数据类型 基础数据类型: TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY,TIMESTAMP,DECIMAL,CH ...

  4. Hive 数据类型及操作数据库

    3. Hive 数据类型 3.1 基本数据类型 Hive 数据类型 Java 数据类型 长度 TINYINT byte 1 byte 有符号整数 SMALINT short 2 byte 有符号整数 ...

  5. Hive 数据类型 + Hive sql

    Hive 数据类型 + Hive sql 基本类型 整型 int tinyint (byte) smallint(short) bigint(long) 浮点型 float double 布尔 boo ...

  6. 第3章 Hive数据类型

    第3章 Hive数据类型 3.1 基本数据类型 对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储2GB ...

  7. hive数据类型学习

    Hive的内置数据类型可以分为两大类:(1).基础数据类型:(2).复杂数据类型.其中,基础数据类型包括: TINYINT, SMALLINT, INT, BIGINT, BOOLEAN, FLOAT ...

  8. TypeScript学习笔记(二):基本数据类型及数据转换

    数据类型 我们来看看TypeScript中的基本数据类型都有哪些. boolean 布尔值,支持true和false. var isDone: boolean = false; 默认为undefine ...

  9. 【2017-2-19】C#数据类型,数据转换,变量,常量,转义符

    数据类型 一.基本数据类型 1.值类型(不可以为null) ⑴整型(可以为负数) byle,int,short,long(从小到大排列) 常用整型 int a=值(小于10位数) long b=值(1 ...

随机推荐

  1. 0417 jsBom操作+Dom再次整理

    BOM 1.Windows对象 window.open("打开的地址","打开的位置")window.opener:打开此页面的上一个页面对象window.cl ...

  2. BeautifulSoup 用法

    一.标签选择器 1.子节点contents ,child(迭代器), 2.子孙节点 descendants(迭代器) 3.父节点 parent 4.祖节点  parents 5.兄弟节点 next_s ...

  3. [LeetCode] Subarray Sum Equals K 子数组和为K

    Given an array of integers and an integer k, you need to find the total number of continuous subarra ...

  4. 报错django.db.migrations.exceptions.InconsistentMigrationHistory

    Pycharm强大的功能总是让我很是着迷,比如它的makemigrations 和 migrate. 然而某一次,当我再次敲下这熟悉的命令时,它报错了.... Traceback (most rece ...

  5. JMeter如何使用用户定义的变量

    jmeter中经常使用用户自定义变量,以下是如何在实战中使用自定义变量. 先用Badboy录制登陆脚本,具体的Badboy录制脚本方法自行百度.录制完毕后修改脚本,删除一些没有用的脚本.这里我只保留了 ...

  6. [Apio2009]Atm

    题目描述 输入 第一行包含两个整数N.M.N表示路口的个数,M表示道路条数.接下来M行,每行两个整数,这两个整数都在1到N之间,第i+1行的两个整数表示第i条道路的起点和终点的路口编号.接下来N行,每 ...

  7. hdu 3473 划分树

    Minimum Sum Time Limit: 16000/8000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tot ...

  8. CentOS7 下安装 Java 8 [wget]

    1. 创建一个文件夹 sudo mkdir /usr/local/services/java8 2. 使用 wget 来下载 wget --no-cookies --no-check-certific ...

  9. Linux常用命令大全(归类)

    最近都在和Linux打交道,这方面基础比较薄弱的我只好买了本鸟哥的书看看,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因, ...

  10. jquery form submit提交后无反应 不报错

    jquery form onSubmit默认返回false 因为页面添加了validate验证,在刷新页面后重新提交需要加上下一行代码 onSubmit:function() {return true ...