Hive Tutorial(一) - Hive的数据类型

简介

Hive支持关系型数据库中的大多数基本数据类型,同时也支持关系型数据库中很少出现的3种集合数据类型

基本数据类型

Hive支持多种不同长度的整型和浮点型数据类型,支持布尔类型,也支持无长度限制的字符串类型。Hive v0.8.0版本中增加了时间戳数据类型和二进制数组数据类型。

表1: 基本数据类型

数据类型 长度 例子
TINYINT 1 byte有符号整数 10
SMALINT 2 byte有符号整数 10
INT 4 byte有符号整数 10
BIGINT 8byte有符号整数 10
BOOLEAN 布尔类型,true或者false False
FLOAT 单精度浮点数 1.14159
DOUBLE 双精度浮点数 1.14159
STRING 字符序列。 可以指定字符集。
使用单引号或者双引号
'now is the time',“for all good men'
TIMESTAMP 整数,浮点数或者字符串 1327882394 (Unix 新纪元秒)
,1327882394.123456789 (Unix新纪元秒并跟随有纳秒数)
'2012-02-0312:34:56. 123456789'(JDBC所兼容的java.sql.Timestamp时间格式)
BINARY 字节数组

集合数据类型

表2: 集合数据类型

数据类型 长度 例子
struct 和C语言中的struct或者“对象”类似,都可以通过STRUCT“点”符号访问元素内容。
例如,如果某个列的数据类型STRUCT{first STRING,last STRING}
那么第1个元素可以通过字段名.first来引用
struct ('John','Doe')
MAP MAP是一组键值对元组集合,使用数组表示法(例如['key'])可以访问元素。
例如,如果某个列的数MAP类型是MAP,其中键->值对是‘first’->‘John''last'->'Doe’
那么可以通过字段名[last']获取最后1个元素
map('first', 'John', 'last', 'Doe')
array 数组是一组具有相同类型和名称的变量的集合。
这ARRAY些变量称为数组的元素,每个数组元素都有一个编Array('John','Doe')号,编号从零开始。
例如,数组值为["John','Doe'],那么第2个元素可以通过数组名[]进行引用
Array('Joe', 'John')

文本文件数据编码

表3: Hive 中默认的记录和字段分割符

分隔符 描述
\n 对于文本文件来说,每行都是一条记录,因此换行符可以分割记录
^A (Ctrl+A) 用于分隔字段(列)。 在CREATE TABLE语句中可以使用八进制编码\001表示
^B 用于分隔ARRARY或者STRUCT中的元素,或用于MAP中键-值对之间的分隔。
在CREATE TABLE语句中可以使用八进制编码\002表示
^C 用于MAP中键和值之间的分隔。在CREATE TABLE语句中可以使用八进制编码\003表示
posted @ 2019-07-16 17:08  GeneJiang  阅读(169)  评论(0编辑  收藏  举报