Hive中的数组类型可以通过ARRAY
和STRUCT
数据类型来表示
ARRAY
和STRUCT
数据类型创建表:CREATE TABLE example_table (
id INT,
item_list ARRAY<STRING>,
item_struct STRUCT<name STRING, quantity INT>
);
INSERT INTO example_table (id, item_list, item_struct)
VALUES (1, ARRAY("apple", "banana", "orange"), STRUCT("apple", 2));
LATERAL VIEW
和EXPLODE
函数将数组转换为行,然后使用FILTER
子句删除不需要的元素:SELECT t.id, item
FROM example_table t
LATERAL VIEW INLINE(t.item_list) items AS item
WHERE item != 'banana';
这将返回以下结果:
id | item
---------
1 | apple
1 | orange
在这个例子中,我们使用LATERAL VIEW INLINE
函数将item_list
数组转换为行,然后使用FILTER
子句删除不需要的元素(“banana”)。