在Hive中,可以使用ARRAY
和STRUCT
数据类型来创建数组和结构体
CREATE TABLE example_array (
id INT,
int_array ARRAY<INT>
);
INSERT INTO example_array (id, int_array) VALUES (1, ARRAY(1, 2, 3));
INSERT INTO example_array (id, int_array) VALUES (2, ARRAY(4, 5));
LATERAL VIEW
和EXPLODE
函数将数组展开为行:SELECT id, int_array[i] as element
FROM example_array
LATERAL VIEW INLINE(int_array) as element;
这将返回以下结果:
id | element
---------
1 | 1
1 | 2
1 | 3
2 | 4
2 | 5
ARRAY_FILL
函数。例如,将空数组填充为0:SELECT id, ARRAY_FILL(0, SIZE(int_array), 0) as filled_array
FROM example_array;
这将返回以下结果:
id | filled_array
---------
1 | [0, 0, 0]
2 | [0, 0]
请注意,ARRAY_FILL
函数在Hive 2.3及更高版本中可用。如果你使用的是较旧版本的Hive,可以考虑使用自定义的UDF(用户定义函数)来实现类似的填充功能。