如何将前两个配置单元表中的数据加载到下面的第三个配置表中?

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

以下是我面临的问题的简化版本

假设我在Hive中有一个员工和一个部门表。我的目标是将这两个表中的数据加载到下面的第三个表中。但是,第3个表中有一些虚拟列设置为null,并且不会被employee或department表中的数据填充。是否仍然可以加载员工和部门数据并将其他字段设置为null?

员工表(id,名,姓,年龄,部门ID,工资)

1,John,Smith,23,1,40000

2,Bob,Wilson,25,1,45000

3,Fred,Krug,37,2,75000

[4,Jeremy,Fisher,41,3,110000

部门表(id,名称)

1,销售

2,IT

3,营销

最终结果(虚拟列0,员工ID,名字,姓,年龄,工资,部门名称,虚拟列1)

null,1,John,Smith,23,40000,Sales,null

null,2,Bob,Wilson,25,45000,Sales,null

null,3,Fred,Krug,37,75000,IT,null

null,4,Jeremy,Fisher,41,110000,Marketing,null

问题已给出最终结果的架构,如何将其余的非空数据加载到第三表中?任何帮助将非常感激!最终结果表已经存在,因此我不能只从头开始创建它

sql database mapreduce hiveql
1个回答
0
投票

是。 Hive不在乎列名。最重要的列的正好位置。您只需要以某种方式来构造查询,以使伪列具有空值。

insert overwrite table tablename
select null, employeeID, first_name,last_name, age, salary, dept.deptName, null
from employee e join dept d on e.dept_id = d.dept_id;
© www.soinside.com 2019 - 2024. All rights reserved.