HiveQL UNION ALL

У меня есть таблица_A:

id var1 var2
1   a    b
2   c    d

TABLE_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;

Я пишу прямо со страницы 112 "Улья программирования" Эдварда Каприоло и др.

Ошибка, которую я получаю, независимо от того, какой якобы разумный вариант из вышеперечисленного я пробую, заключается в

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

Я попытался использовать AS между именем таблицы и псевдонимом, звездочками, так как я хочу все из обеих таблиц. Та же ошибка Я пробовал другие вещи и получал другие ошибки... Все, что я хочу сделать, это UNION две таблицы. (Я пробовал UNION вместо UNION ALL - та же ошибка).

Ответ 1

Просто замените все на другое слово. Кажется, это зарезервированное ключевое слово. Например:

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 
;

Ответ 3

Попробуйте, у меня это сработало.

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;