hive中的数据类型和注意事项

      使用hive建表,首先要明白hive常用的数据类型有哪些,可以存储哪些类型的数据。其实Hive支持关系型数据库中的大多数基本数据类型,且同时支持关系型数据库中少见的3种集合数类型(STRUCT,MAP,ARRAY)。

     下面介绍的是基于hive v0.80版本之后的hive支持的数据类型,同关系型数据库一样,hive支持多种不同长度的整型和浮点型数据,同时支持布尔型,不定长度的字符串型。注意,这里的int,float,double等底层实现原理和java中底层实现一样,因为hive基于java开发的,底层是对java接口的实现。

数据类型 长度和范围 举例
  tinyint     1byte 有符号整数,范围同java -10,10
 smalint 2byte有符号整 -10,10
  int 4byte有符号整数 -10,10
bigint 8byte有符号整数 -10,10
boolean 布尔类型,和java,数据库一样,true,false true,fallse
float 单精度浮点数     2.22222
double     双精度浮点 3.33333
STRING     字符串,可以使用单引号或者双引号 ‘abc’,"helllo"
timestamp 时间戳:整数浮点或者字符串 13212321,‘2018-05-10 03:22:22.333333’
binary 字节数组  
struct 和C语言里的struct或者java里的对象类似 struct('hello',‘world’)
map 键值对组合和java中类似 map(1,'aaa',2,'bbb')
array 数组:具有相同类型和名称的变量的集合 array(1,3,5,3)
     
     
    注意:1.hive中不同类型之间比较时,也遵循java中的自动类型转换,低-->高,比如int和double类型比较,会都转换成double类型。当然也可以用cast函数,将字符串类型的数字转换成对应的数字型,比如s='123',cast( s as int)
              2.虽然hive支持3种集合格式,实际使用很少,hive中没有键的概念,但是可以建立索引
     


猜你喜欢

转载自blog.csdn.net/qq_26442553/article/details/80275712