如何使用数组数据类型加入hive?

问题描述 投票:0回答:1

我有employee表,其员工ID为int,员工姓名为字符串,department id为整数数据类型的数组作为列。下面给出了Employee表的记录。

employee5.empid employee5.empname       employee5.deptid
1       Emp1    [2,3,1,4]
2       Emp2    [5,2,3,4]
3       Emp3    [1,4,2,3]
4       Emp4    [5,3,4,1]
5       Emp5    [1,2,3,4]
6       Emp6    [5,3,1,2]
7       Emp7    [3,2,4,5]
8       Emp8    [1,4,2,3]
9       Emp9    [5,2,3,1]
10      Emp10   [2,4,3,5]

我也有部门表,其部门ID为int,部门名称为字符串,部门位置为字符串列。以下是department表的记录。

department.deptid       department.deptname     department.location
1       IT      Delhi
2       Support Bangalore
3       HR      Pune
4       Finance Mumbai
5       Call Center     Mysore

由于我是蜂巢的新手,请帮助我使用蜂巢连接显示员工姓名和相应的部门。提前谢谢。

bigdata hiveql
1个回答
0
投票

我没有测试过,这可能会起作用。

首先,您需要将数组分解为多行然后需要连接,我认为这不是一种直接的连接方式。

select * from   
    (select empid, empname, dept_id from employee5 lateral view explode(deptid) d as dept_id) emp 
    join 
    department
    on 
    department. deptid = emp.dept_id
© www.soinside.com 2019 - 2024. All rights reserved.