1. 程式人生 > >Hive內置數據類型

Hive內置數據類型

string sta arc 相同 array類 idt 表格 Go 類型

Hive的內置數據類型可以分為兩大類:(1)、基礎數據類型;(2)、復雜數據類型。其中,基礎數據類型包括:TINYINT,SMALLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,BINARY,TIMESTAMP,DECIMAL,CHAR,VARCHAR,DATE。下面的表格列出這些基礎類型所占的字節以及從什麽版本開始支持這些類型。

數據類型 所占字節 開始支持版本
TINYINT 1byte,-128 ~ 127
SMALLINT 2byte,-32,768 ~ 32,767
INT 4byte,-2,147,483,648 ~ 2,147,483,647
BIGINT 8byte,-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
BOOLEAN
FLOAT 4byte單精度
DOUBLE 8byte雙精度
STRING
BINARY 從Hive0.8.0開始支持
TIMESTAMP 從Hive0.8.0開始支持
DECIMAL 從Hive0.11.0開始支持
CHAR 從Hive0.13.0開始支持
VARCHAR 從Hive0.12.0開始支持
DATE 從Hive0.12.0開始支持

  復雜類型包括ARRAY,MAP,STRUCT,UNION,這些復雜類型是由基礎類型組成的。

  ARRAY:ARRAY類型是由一系列相同數據類型的元素組成,這些元素可以通過下標來訪問。比如有一個ARRAY類型的變量fruits,它是由[‘apple‘,‘orange‘,‘mango‘]組成,那麽我們可以通過fruits[1]來訪問元素orange,因為ARRAY類型的下標是從0開始的;
  MAP:MAP包含key->value鍵值對,可以通過key來訪問元素。比如”userlist”是一個map類型,其中username是key,password是value;那麽我們可以通過userlist[‘username‘]來得到這個用戶對應的password;
  STRUCT:STRUCT可以包含不同數據類型的元素。這些元素可以通過”點語法”的方式來得到所需要的元素,比如user是一個STRUCT類型,那麽可以通過user.address得到這個用戶的地址。
  UNION: UNIONTYPE,他是從Hive 0.7.0開始支持的。

  創建一個包含復制類型的表格可以如下

    1. CREATE TABLE employees (
    2. name STRING,
    3. salary FLOAT,
    4. subordinates ARRAY<STRING>,
    5. deductions MAP<STRING, FLOAT>,
    6. address STRUCT<street:STRING, city:STRING, state:STRING, zip:INT>
    7. ) PARTITIONED BY (country STRING, state STRING);

Hive內置數據類型