在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(用戶定義函數)來實現類似的填充功能。