Hive 数据类型

  • Hive 数据类型

    本章将向您介绍Hive中创建表所涉及的不同数据类型。Hive中的所有数据类型分为以下四种类型:
    • 列类型
    • 字面量
    • 空值
    • 复数类型
  • 列类型

    列类型用作Hive的列数据类型。它们如下:
    整数类型
    可以使用整数数据类型INT指定整数类型数据。当数据范围超出INT的范围时,您需要使用BIGINT;如果数据范围小于INT,则使用SMALLINT。TINYINT小于S​​MALLINT。
    下表描述了各种INT数据类型:
    类型 后缀 例子
    TINYINT Y 10Y
    SMALLINT S 10S
    INT - 10
    BIGINT L 10L
    字符串类型
    可以使用单引号('')或双引号("")来指定字符串类型的数据类型。它包含两种数据类型:VARCHAR和CHAR。配置单元遵循C类型的转义符。
    下表描述了各种CHAR数据类型:
    数据类型 长度
    VARCHAR 1 to 65355
    CHAR 255
    时间戳
    它以可选的纳秒精度支持传统的UNIX时间戳。它支持java.sql.Timestamp格式“YYYY-MM-DD HH:MM:SS.fffffffff”和格式“yyyy-mm-dd hh:mm:ss.ffffffffff”。
    日期
    DATE值以年/月/日的格式{{YYYY-MM-DD}}进行描述。
    小数
    Hive中的DECIMAL类型与Java的Big Decimal格式相同。它用于表示不变的任意精度。语法和示例如下:
    
    DECIMAL(precision, scale)
    decimal(10,0)
    
    联合类型
    联合是异构数据类型的集合。您可以使用create union创建实例。语法和示例如下:
    
    UNIONTYPE<int, double, array<string>, struct<a:int,b:string>>
    
    {0:1} 
    {1:2.0} 
    {2:["three","four"]} 
    {3:{"a":5,"b":"five"}} 
    {2:["six","seven"]} 
    {3:{"a":8,"b":"eight"}} 
    {0:9} 
    {1:10.0}
    
    字面量
    Hive中使用以下字面量:
    浮点类型
    浮点类型就是带小数点的数字。通常,此数据类型由DOUBLE数据类型组成。
    小数类型
    十进制类型数据不过是浮点值,其范围比DOUBLE数据类型高。小数类型的范围是大约-10 -308到 10 308
  • 空值

    缺失值由特殊值NULL表示。
  • 复数类型

    Hive复数数据类型如下:
    数组(Arrays)
    Hive中的数组的使用方式与Java中使用的方式相同。
    
    Syntax: ARRAY<data_type>
    
    映射(Maps)
    Hive中的Map类似于Java Map。
    
    Syntax: MAP<primitive_type, data_type>
    
    结构(Structs)
    Hive中的结构类似于使用带注释的复杂数据。
    
    Syntax: STRUCT<col_name : data_type [COMMENT col_comment], ...>