使用 Hive 将列转置为同一表中的行
Posted
技术标签:
【中文标题】使用 Hive 将列转置为同一表中的行【英文标题】:Transposing columns to rows in the same table using Hive 【发布时间】:2021-10-10 18:22:20 【问题描述】:这个问题是here的一个连续性问题。
我有下表:
EmployeeId Dept1 Dept2 Dept3
150 10 55 6
这是获得该结果的查询:
SELECT EmployeeId, Dept1, Dept2, Dept3 FROM Employee_History
这是我的预期输出:
EmployeeId Dept
150 10
150 55
150 6
【问题讨论】:
N
employeeId
和 Dept<M>
的联合用于 M
N
@astentx 我听不懂
【参考方案1】:
虽然 Hive 不支持 PIVOT 和 UNPIVOT 查询,但您可以使用以下内容:
select EmployeeId
,pe.val as Dept
from Employee_History
lateral view posexplode(array(dept1,dept2,dept3)) pe
;
【讨论】:
以上是关于使用 Hive 将列转置为同一表中的行的主要内容,如果未能解决你的问题,请参考以下文章