Hive数据类型

1. 基本数据类型

hive数据类型java数据类型长度栗子
TINYINTbyte1byte 有符号整数10
SMALINTshort2byte 有符号整数10
INTint4byte 有符号整数10
BIGINTlong8byte 有符号整数10
BOOLEANboolean布尔类型,true 或者 falsetrue\false
FLOATfloat单精度浮点数3.1415
DOUBLEdouble双精度浮点数3.1415
STRINGstring字符系列‘hello world’
TIMESTAMP时间类型
BINARY字节数组

2. 集合数据类型

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

3. 举个例子

3.1 原始数据

{
 "name": "zhangsan",
 "friends": ["lisi" , "wangwu"] , 
 "children": { //键值 Map,
     "zhangsi": 20 ,
     "zhangwu": 21
 }
 "address": { 
     "streetid": 1,
     "city": "beijing"
 }
}

test.txt
zhangsan,lisi_wnangwu,zhangsi:20_zhangwu:21,1_beijing

3.2 创建表

create table test(
	name string,
    friends array<string>,
    children map<string, int>,
    address struct<streetid: int, city: string>
)
row format delimited fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n';

3.3 导入数据

load data local inpath '/tmp/test.txt' into table test;

4. 类型转换

4.1 隐式转换

  1. 任何整数类型都可以隐式地转换为一个范围更广的类型,如 TINYINT 可以转换成 INT,INT 可以转换成 BIGINT。

  2. 所有整数类型、FLOAT 和 STRING 类型都可以隐式地转换成 DOUBLE。

  3. TINYINT、SMALLINT、INT 都可以转换为 FLOAT。

  4. BOOLEAN 类型不可以转换为任何其它的类型。

4.2 CAST转换

CAST(‘1’ AS INT)将把字符串’1’ 转换成整数 1;

如果强制类型转换失败,如执行 CAST(‘X’ AS INT),表达式返回空值 NULL。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值