在Hive中,Lateral View用于将一个行扩展为多个行,通常与explode()函数一起使用
假设我们有一个名为employees的表,其中包含以下列:employee_id, department, skills。skills列包含一个嵌套数组,表示员工掌握的技能。
CREATE TABLE employees (
employee_id INT,
department STRING,
skills ARRAY<STRING>
);
现在,我们想要查询每个员工的技能,并将它们展开为一个行集。我们可以使用Lateral View和explode()函数来实现这一目标。
SELECT
e.employee_id,
e.department,
s.skill
FROM
employees e
LATERAL VIEW
explode(e.skills) s AS skill;
这将返回以下结果:
employee_id | department | skill
------------+------------+-------
1 | HR | Java
1 | HR | Python
1 | HR | SQL
2 | IT | Hadoop
2 | IT | Spark
2 | IT | SQL
在这个例子中,我们首先从employees表中选择employee_id和department列。然后,我们使用LATERAL VIEW子句来引用explode()函数,该函数将skills数组展开为一个行集。最后,我们将展开后的技能列命名为skill。