hive posexplode:如何处理嵌套数据

作者:袖梨 2026-06-27

Hive中的posexplode函数用于处理数组或结构体类型的列,将其拆分为多行

hive posexplode如何处理嵌套数据

假设我们有一个名为employee的表,其中包含一个名为skills的数组类型列,表示员工的技能。我们希望将每个技能拆分为单独的行。

表结构如下:

CREATE TABLE employee (id INT,name STRING,skills ARRAY<STRING>);

插入一些示例数据:

INSERT INTO employee (id, name, skills)VALUES (1, 'Alice', ARRAY('Java', 'Python', 'Hive'));

现在,我们可以使用posexplode函数将skills列拆分为多行:

SELECT id, name, pos, skillFROM employeeLATERAL VIEW INLINE(skills) inline_table AS pos, skill;

这将返回以下结果:

id | name| pos | skill-----------------------------1| Alice |1| Java1| Alice |2| Python1| Alice |3| Hive

在这个例子中,我们使用了LATERAL VIEW INLINE来将skills数组拆分为多行。pos列表示技能在数组中的位置,skill列表示实际的技能。

相关文章

精彩推荐