hive 是一个非常新的事物,对此有非常基本的了解,因此,如果它很傻,请原谅我:

以下数据仅是尝试执行的示例,实际数据确实非常庞大。

我有2张桌子:

表A

id1名称来源

101aa SAP

102 bb SAP

103毫升SAP

表B

id2名称来源

106 zz SAP

107年SAP

108 xx SAP

我需要使用架构创建另一个表C

id名称串

具有表A和B中的所有ID和名称,以及另一列“存储”,该列必须用“HDFS”进行硬编码

我需要像这样的输出:

id名称Strorage

101aa HDFS

102 bb HDFS

103 cc HDFS

106 zz HDFS

107年HDFS

108 xx HDFS

我尝试了许多查询,但其中1个如下:

insert into table c select (select * from (select id1 from A union select id2 from B)) as id, (select * from (select name from A union select name from B)) as name , 'HDFS' as Strorage;

但出现错误“ParseException行1:53无法识别表达式规范中'select''*''from'附近的输入”

不知道该查询是否正确,请帮助我。

谢谢

最佳答案

这是工作查询:

insert into table c select distinct * from (select id1, name, 'HDFS' storage from a union all select id1, name, 'HDFS' storage from b) c;

有些版本不支持并集,只有全部并集可以模拟您必须使用不同的并集。

如果字段名称不同,则必须尝试以下操作:
insert into table c select distinct * from (select id1, name, 'HDFS' storage from a union all select id2 as id1, name, 'HDFS' storage from b) c;

10-01 07:50
查看更多