如何将前 2 个 hive 表中的数据加载到下面的第三个表中?
Posted
技术标签:
【中文标题】如何将前 2 个 hive 表中的数据加载到下面的第三个表中?【英文标题】:How do I load the data from the first 2 hive tables into the 3rd one below? 【发布时间】:2020-03-21 19:42:24 【问题描述】:以下是我所面临问题的简化版本
假设我在 Hive 中有一个员工和一个部门表。我的目标是将这两个表中的数据加载到下面的第三个表中。但是,第 3 个表有几个虚拟列设置为空,并且不会由员工或部门表中的数据填充。是否仍然可以加载员工和部门数据并将其他字段设置为空?
员工表(id,first_name,last_name,age,department_id,salary)
1,约翰,史密斯,23,1,40000
2,鲍勃,威尔逊,25,1,45000
3,弗雷德,克鲁格,37,2,75000
4,杰里米,费舍尔,41,3,110000
部门表(id,name)
1、销售
2,它
3、营销
最终结果(dummy_column0,employeeID,first_name,last_name,age,salary,department_name,dummy_column1)
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
问题给出了最终结果的架构,我如何将其余的非空数据加载到第三张表中?任何帮助将非常感激!最终结果表此时已经存在,所以我不能从头开始重新创建它
【问题讨论】:
SELECT NULL AS dummy_column0
?
【参考方案1】:
是的。 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;
【讨论】:
以上是关于如何将前 2 个 hive 表中的数据加载到下面的第三个表中?的主要内容,如果未能解决你的问题,请参考以下文章
如何将excel表中的数据自动按照一定顺序显示到下一个表中啊
将 .txt 文件中的数据加载到 Hive 中存储为 ORC 的表中