【Hive】Hive数据类型的简绍

基本数据类型

  • Hive的数据类型和Java是很相似的
    在这里插入图片描述
    对于 Hive 的 String 类型相当于数据库的 varchar 类型,该类型是一个可变的字符串,不 过它不能声明其中最多能存储多少个字符,理论上它可以存储 2GB 的字符数

集合数据类型

  • 集合数据类型,这些数据类型都支持嵌套(例如:array里的元素可能也是个array)
  • Hive 有三种复杂数据类型 ARRAY、MAP 和 STRUCT。ARRAY 和 MAP 与 Java 中的 Array 和 Map 类似,而 STRUCT 与 C 语言中的 Struct 类似,它封装了一个命名字段集合,复杂数据 类型允许任意层次的嵌套。
    在这里插入图片描述
  • 思考:当数据的格式如下时,该如何建表

songsong,bingbing_lili,xiao song:18_xiao xiao song:19,hui long guan_beijing

  • 建表语句
create table test(
name string,
friends array<String>,
children map<string,int>,
address struct<street:string,city:string>
)
row format delimited 
fields terminated by ','
collection items terminated by '_'
map key terminated by ':'
lines terminated by '\n';
  1. 访问特殊类型的参数
  2. 访问name的语句:select name from test;
  3. 访问friends的语句:select friends[1] from test;
  4. 访问children的语句:select children.['xiao song'] from test;
  5. 访问address的语句:select address.street from test

类型的转换

隐式转换

  1. 如何整数类型都可以隐式转换成一个范围更广的类型,如TINYINT可以转换为INT、INT可以转换成BIGINT
  2. 所有整数类型、FLOAT和STRING类型都可以隐式转换成DOUBLE类型
  3. TINYINT、SMALLINT、INT都可以转换成FLOAT
  4. BOOLEAN不可以转换成如何类型

强制转换

  • 可以使用cast操作显示进行数据类型转换
  • 例如:将字符串1转换成整数1,如果强制类型转换失败,表达式返回null
select '1' + 2,cast('1' as int) + 2;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值