由于需要使用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. [LeetCode] Remove Comments 移除注释

    Given a C++ program, remove comments from it. The program source is an array where source[i] is the ...

  2. 【django之modelform】

    一.什么是modelform ModelForm顾名思义就Form和Django的Model数据库模型结合体,可以简单.方便得对数据库进行增加.编辑操作和验证标签的生成: 举例说明: 比如我们的数据库 ...

  3. C++11 作用域内枚举

    enum class MyEnum{ P1 = , P2, P3, P4, P5 }; MyEnum myEnum = MyEnum::P2; 使用作用域的方式获取并限定P2的值.之所以要使用作用域, ...

  4. JavaScript之Promise对象

    含义 Promise 是异步编程的一种解决方案,比传统的解决方案--回调函数和事件--更合理和更强大.它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了 Promise 对象. ...

  5. python-文件操作和集合

    1.打开文件 如果文件不存在会报错 f = open('information.txt','r+') 2.读取文件 read 读取文件 readline 读取文件的一行内容 readlines 读取文 ...

  6. python数据挖掘_Json结构分析

    json是一种轻量级的数据交换格式,也可以说是一种配置文件的格式 这种格式的文件是我们在数据处理经常会遇到的 python提供内置的模块json,只需要在使用前导入即可 你可以通过帮助函数查看json ...

  7. 控制公司 Controlling Companies

    题目描述 有些公司是其他公司的部分拥有者,因为他们获得了其他公司发行的股票的一部分.(此处略去一句废话)据说,如果至少满足了以下三个条件之一,公司A就可以控制公司B了: 公司A = 公司B. 公司A拥 ...

  8. 51 nod 1515 明辨是非(并查集合并)

    1515 明辨是非题目来源: 原创基准时间限制:1 秒 空间限制:131072 KB 分值: 160 难度:6级算法题 给n组操作,每组操作形式为x y p. 当p为1时,如果第x变量和第y个变量可以 ...

  9. poj 1265 Area 面积+多边形内点数

    Area Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5861   Accepted: 2612 Description ...

  10. 习题9-8 uva1631

    题意: 给你一串密码,每次我们可以转动1-3个数字,求转出最终答案的最小步数 思路: 感觉自己好坑,最开始想的是dp[cur][t1][t2][t3]也就是t1的位置以及连续的三个数的状态 但是卡死循 ...