【问题标题】:How can I do join in hive with array datatype?如何使用数组数据类型加入配置单元?
【发布时间】:2019-03-02 18:08:33
【问题描述】:

我有一个员工表,其中员工 ID 为 int,员工姓名为字符串,部门 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.deptid       department.deptname     department.location
1       IT      Delhi
2       Support Bangalore
3       HR      Pune
4       Finance Mumbai
5       Call Center     Mysore

由于我是 hive 的新手,请帮助我使用 hive join 显示员工姓名及其相应部门。提前致谢。

【问题讨论】:

    标签: bigdata hiveql


    【解决方案1】:

    不过,我还没有测试过,这可能有效。

    首先,你需要将数组分解成多行然后需要join,我认为不是直接的join方式。

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-20
      • 1970-01-01
      • 2018-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多