web-dev-qa-db-ja.com

HiveQL UNIONすべて

私はtable_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;

Edward Caprioloほかによる 『Programming Hive』の112ページから直接コーディングしています。

私が試みるエラーは、上記のどのような表面上妥当なバリエーションを試みても、

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

テーブル名とエイリアス、アスタリスクの間にASを使用してみました。両方のテーブルのすべてが必要だからです。同じエラー。他のことを試しましたが、他のエラーが発生しました... UNION 2つのテーブルを実行するだけです。 (UNION ALLではなくUNIONを試しました—同じエラーです)。

13
dum_dum_dummy

すべてを別の単語に置き換えるだけです。予約キーワードのようです。例えば:

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;
14
Lorand Bendig

同様のクエリが機能しています。テーブル名と列名を変更するだけです。これを試して。これがお役に立てば幸いです。

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

これを試してください、それは私のために働きました。

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;
0
Mahesh Kumar