Hive中的posexplode
函数用于将数组类型的列展开为多行,每行包含数组中的一个元素及其在数组中的位置
假设我们有一个名为my_table
的表,其中有一个名为my_array
的数组类型列,我们希望将其展开为多行。可以使用以下查询:
SELECT
pos,
my_array[pos] AS element
FROM
my_table
LATERAL VIEW
explode(my_array) exploded_table AS pos, element;
在这个查询中,我们首先使用LATERAL VIEW
子句将my_array
列展开为多行。然后,我们使用explode
函数生成两个新列:pos
表示元素在数组中的位置,element
表示数组中的元素。
这将返回一个结果集,其中每一行都包含一个数组元素及其在数组中的位置。