在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。