HiveQL UNION ALL

16

我有一个名为table_A的表格:

id var1 var2
1   a    b
2   c    d

表 B:

id var1 var2  
3   e    f
4   g    h

我想要的只是一个合并的表格:

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等人编写的《编程蜂巢》第112页上的代码编程。

无论我尝试上述任何表面上合理的变化,我都会得到以下错误:

cannot recognize input near '.' 'id' ',' in select expression.

我已经尝试在表名和别名之间使用AS,以及使用星号,因为我想从两个表格中获取所有内容。但还是出现了同样的错误。我已经尝试过其他方法并获得了其他错误…… 我想做的就是将两个表进行UNION(我已经尝试过UNION ALL而没有成功——同样的错误)。

3个回答

15

将所有内容替换为另一个单词。它似乎是一个保留关键字。例如:

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;

2

我有类似的查询正在运行。只需更改表名和列名即可。试试这个。希望能对你有所帮助。

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

1
尝试一下,这对我有效。
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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接