hiveql联合所有

vyswwuz2  于 2021-06-03  发布在  Hadoop
关注(0)|答案(3)|浏览(361)

我有表a:

id var1 var2
1   a    b
2   c    d

表b:

id var1 var2  
3   e    f
4   g    h

我只想要一张table,加起来:

id var1 var2
1   a    b
2   c    d
3   e    f
4   g    h

这是我的.hql:

CREATE TABLE combined AS
SELECT all.id, all.var1, all.var2
FROM (
  SELECT a.id, a.var1, a.var2  
  FROM table_A a  
  UNION ALL  
  SELECT b.id, b.var1, b.var2  
  FROM table_B b
) all;

我直接从edward capriolo等人的programming hive第112页开始编写代码。
我得到的错误,无论表面上合理的变化,上述我尝试,是 cannot recognize input near '.' 'id' ',' in select expression. 我试过使用 AS 在表名和别名之间加上星号,因为我需要两个表中的所有内容。同样的错误。我尝试过其他的事情,也犯过其他的错误。。。我想做的就是 UNION 两张table(我试过了 UNION 而不是 UNION ALL -相同的错误)。

vhipe2zx

vhipe2zx1#

我也有类似的疑问。只是更改表名和列名。试试这个。希望这对你有帮助。

create table new_table as
select
distinct
id, name
FROM
table1
union all
select
distinct
id,name
from
table2 
;
6ie5vjzr

6ie5vjzr2#

试试这个,对我有用。

CREATE TABLE combined AS
SELECT id, var1, var2
FROM (
  SELECT id, var1, var2  
  FROM table_A
  UNION ALL  
  SELECT id, var1, var2  
  from table_B
) a;
91zkwejq

91zkwejq3#

用另一个词来代替。它似乎是一个保留关键字。例如:

CREATE TABLE combined AS
SELECT unioned.id, unioned.var1, unioned.var2
FROM (
  SELECT a.id, a.var1, a.var2  
  FROM table_A a  
  UNION ALL  
  SELECT b.id, b.var1, b.var2  
  from table_B b
) unioned;

相关问题