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;