2012-12-31 34 views
9

私はtable_A持っている:HiveQL UNION ALL

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.

ある表向きは私がしようとしていること上記の合理的な変動、取得しないエラー両方のテーブルから。同じエラー。私は他のものを試して、他のエラーを取得しました...私がしたいのは、UNIONの2つのテーブルです。 (私はUNION ALLの代わりにUNIONを試しました - 同じエラーです)。

答えて

10

すべてを別の単語に置き換えてください。それは予約されたキーワードのようです。例:

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

私は同様のクエリ機能を持っています。テーブル名とカラム名を変更するだけです。これを試して。これがあなたを助けることを願ってください。

create table new_table as 
select 
distinct 
id, name 
FROM 
table1 
union all 
select 
distinct 
id,name 
from 
table2 
; 
関連する問題