Hive中的posexplode
函数用于将数组或map类型的列展开为多行记录
假设我们有一个名为user_info
的表,其中包含以下列:
我们希望将interests
列展开为多行记录,以便每个兴趣都能单独显示。可以使用posexplode
函数实现这一目标。以下是使用posexplode
的查询示例:
SELECT
id,
interest
FROM
user_info
LATERAL VIEW
posexplode(interests) exploded_interests AS interest;
这将返回以下结果:
id | interest |
---|---|
1 | 篮球 |
1 | 足球 |
2 | 阅读 |
2 | 旅行 |
在这个例子中,我们首先使用LATERAL VIEW
子句将interests
列展开为多行记录。然后,我们将展开后的结果命名为exploded_interests
,并将其作为临时表与原始表进行连接。最后,我们从临时表中选择id
和interest
列。