Hive支持复杂数据类型,如STRUCT、ARRAY和MAP
CREATE TABLE example_struct (
id INT,
name STRING,
address STRUCT<street:STRING, city:STRING, state:STRING, zip:INT>
);
在这个例子中,我们创建了一个名为example_struct
的表,其中包含一个名为address
的字段,该字段的类型为STRUCT,包含四个字段:street、city、state和zip。
CREATE TABLE example_array (
id INT,
names ARRAY<STRING>
);
在这个例子中,我们创建了一个名为example_array
的表,其中包含一个名为names
的字段,该字段的类型为ARRAY,包含多个字符串元素。
CREATE TABLE example_map (
id INT,
attributes MAP<STRING, STRING>
);
在这个例子中,我们创建了一个名为example_map
的表,其中包含一个名为attributes
的字段,该字段的类型为MAP,包含多个字符串键值对。
插入复杂数据类型的示例:
-- 插入STRUCT类型数据
INSERT INTO example_struct (id, name, address)
VALUES (1, 'John Doe', STRUCT('123 Main St', 'New York', 'NY', 10001));
-- 插入ARRAY类型数据
INSERT INTO example_array (id, names)
VALUES (2, ARRAY('Alice', 'Bob', 'Charlie'));
-- 插入MAP类型数据
INSERT INTO example_map (id, attributes)
VALUES (3, MAP('key1', 'value1', 'key2', 'value2'));
查询复杂数据类型的示例:
SELECT * FROM example_struct;
SELECT * FROM example_array;
SELECT * FROM example_map;
这些示例将显示如何创建包含复杂数据类型的表以及如何插入和查询这些数据。