Hive SQL中,可以使用EXPLODE
函數將數組類型的列轉換為多行
CREATE TABLE example_table (
id INT,
items ARRAY<STRING>
);
現在,假設我們要將items
列中的每個元素轉換為一個單獨的行??梢允褂靡韵虏樵儯?/p>
SELECT id, item
FROM example_table
LATERAL VIEW INLINE(items) items_table AS item;
這個查詢的工作原理如下:
SELECT id, item
:選擇id
和items
列。FROM example_table
:從example_table
表中獲取數據。LATERAL VIEW INLINE(items) items_table AS item
:使用LATERAL VIEW
子句將items
列中的數組轉換為多行。INLINE
函數用于將數組展開為多行。items_table
是展開后的臨時表,其中每個元素都單獨的行。AS item
將展開后的表中的一個列命名為item
。執行此查詢后,您將看到以下結果:
id item
1 a
1 b
1 c
2 x
2 y
2 z
這樣,您就可以將Hive表中的數組列轉換為多行。