Hive 总结之数据类型归纳

本文详细介绍了Hive中的数据类型,包括基本数据类型如TINYINT、STRING、TIMESTAMP,以及集合数据类型如STRUCT、MAP和ARRAY。讨论了数据类型的转化,特别是隐式转换和cast函数的使用。此外,还提供了查看Hive函数文档的方法。
摘要由CSDN通过智能技术生成

Hive 总结之数据类型归纳

1. 背景

  1. Hive的本质是一个转换工具,将类sql语句(HQL)转换为mapreduce程序或者类mapreduce程序(hadoop的mapreduce或者spark)。
  2. Hive可以处理结构化数据并转换为一张表来提供对外的数据查询和分析。但本身不能存储数据。
  3. Hive的表的元数据(schema等信息)存储在数据库中,一般配置为使用mysql存储,不设置就是默认的derby数据库存储。数据信息则存储在hdfs中。
  4. 既然涉及到类SQL(HQL),则必定语法上主体和SQL规范很接近,同样会有数据类型。
  5. 本文就是关于数据类型的文章

2. 基本数据类型

会将Hive数据类型和Java数据类型进行对比,数据长度 和示例。

  1. TINYINT:1byte有符号整数如20,可以类比java的byte类型
  2. SMALINT:2byte有符号整数如20,可以类比java的short类型
  3. INT:4byte有符号整数如20,可以类比java的int的类型。
    注意,不管在哪种编程语言(sql也是一种编程语言),int和double都是主要的数据类型,当然特殊场景下会有变化。
  4. BIGINT:8byte有符号整数如10000,可以类比java的long类型
  5. BOOLEAN:布尔类型,true或者false如TRUE、 FALSE,可以类比Java的boolean类型。
  6. FLOAT:单精度浮点数如3.14159,可以类比java的 float类型。
    注意,在阿里巴巴的java开发规范中,一般禁止使用float和double,因为读写时都会有精度损失,一般使用decimal代替,不过这是HQL,如果可以的话,使用string存储浮点数也是一种解决办法。
  7. DOUBLE:双精度浮点数如3.14159,可以类比java 的double类型。注意点同上
  8. STRING:字符系列。可以指定字符集。可以使用单引号或者双引号。如‘now is the time’ 、“for all good men”,可以类比java的string类型。也可以类比sql的varchar可变字符串类型。
  9. TIMESTAMP:时间类型
  10. BINARY:字节数组

在HQL中,一般常用的是时间、int、string类型,其他基本类型了解即可。因为HQL主要用于处理海量数据情形,很多时候都是处理结构化文本数据,这时候字符串类型较多。

3. 集合数据类型

3.1 集合类型概述

  1. STRUCT(结构体)对象,和c语言以及swift语言中的struct类似,都可以通过“点”符号访问元素内容。
  • 例如,如果某个列的数据类型是STRUCT{first STRING, last STRING},那么第1个元素可以通过字段.first来引用。
  • 示例如 struct()
  1. MAP 映射,MAP是一组键-值对元组集合,使用数组表示法可以访问数据。
  • 例如࿰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值