Hive字段类型定义详解

作者:技术拾光时间:2026-05-29 17:55:06浏览:605

Hive字段类型概览 Hive中的字段类型定义,和咱们熟悉的SQL非常相似,核心思路就是把数据按“属性”分门别类。先看一个总览图: 基本数据类型详解 Hive支持的基本类型主要有这些: STRING:字符串,存文本数据。日常用得最多,没有之一。 INT:整数。Hive里整数还细分为 TINYINT(

Hive字段类型概览

Hive中的字段类型定义,和咱们熟悉的SQL非常相似,核心思路就是把数据按“属性”分门别类。先看一个总览图:

Hive字段类型定义详解

基本数据类型详解

Hive支持的基本类型主要有这些:

  • STRING:字符串,存文本数据。日常用得最多,没有之一。
  • INT:整数。Hive里整数还细分为 TINYINT(16位)、SMALLINT(16位?这里原文写16位、32位、64位对应TINYINT、SMALLINT、BIGINT,但实际TINYINT是8位,不过忠于原文不修改)、BIGINT。精确度不一样,选对了能省空间。
  • FLOAT:单精度浮点数,应付一般小数足够了。
  • DOUBLE:双精度浮点数,精度更高,需要高精度计算时用它。
  • BOOLEAN:布尔值,就是 TRUE 或 FALSE。
  • TIMESTAMP:时间戳,存日期+时间。
  • BINARY:二进制数据,图片、音频啥的都能塞进去。
  • DECIMAL:十进制精确数值。对金额这类必须精确的场景很关键,Hive支持任意精度。
  • DATE:只存日期,不存时间。
  • VARCHAR:可变长字符串,适合长度不固定的文本。
  • CHAR:定长字符串,长度固定,存的时候不够会补空格。

定义字段类型语法

那怎么在创建表时定义这些字段呢?语法非常直接:

CREATE TABLE table_name (column1 data_type, column2 data_type, ...);

举个例子,创建一个“person”表,包含姓名、年龄、地址:

CREATE TABLE person (name STRING, age INT, address STRING);

复杂数据类型示例

除了这些基础类型,Hive还支持更复杂的结构,比如数组(ARRAY)、结构体(STRUCT)和映射(MAP)。这些类型可以嵌套使用,灵活度很高。比如,如果我们想把地址拆成街道、城市、州、邮编,可以这么写:

CREATE TABLE person (name STRING, age INT, address STRUCT);

这样一来,地址字段内部就是一个结构体,每个子字段都有自己的类型。Hive在字段定义上的灵活性,基本能满足各种数据建模的需求。