Hive支持復雜數據類型,包括STRUCT
、ARRAY
、MAP
和UNIONTYPE
。以下是如何在Hive中定義這些復雜數據類型的示例:
STRUCT:
CREATE TABLE employee (
id INT,
name STRING,
address STRUCT<street:STRING, city:STRING, state:STRING, zip:INT>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
在這個例子中,我們創建了一個名為employee
的表,其中包含一個名為address
的復雜字段,該字段是STRUCT
類型,包含street
、city
、state
和zip
四個子字段。
ARRAY:
CREATE TABLE products (
id INT,
name STRING,
categories ARRAY<STRING>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
在這個例子中,我們創建了一個名為products
的表,其中包含一個名為categories
的復雜字段,該字段是ARRAY
類型,包含多個STRING
類型的元素。
MAP:
CREATE TABLE product_sales (
product_id INT,
product_name STRING,
sales_info MAP<STRING, INT>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
在這個例子中,我們創建了一個名為product_sales
的表,其中包含一個名為sales_info
的復雜字段,該字段是MAP
類型,包含多個STRING
到INT
的鍵值對。
UNIONTYPE:
CREATE TABLE employee_types (
id INT,
name STRING,
job_type UNIONTYPE<ENGINEER, SALES, MANAGER>
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
在這個例子中,我們創建了一個名為employee_types
的表,其中包含一個名為job_type
的復雜字段,該字段是UNIONTYPE
類型,可以是ENGINEER
、SALES
或MANAGER
三種類型之一。