2012-12-31 32 views
9

मैं table_A है:HiveQL यूनिअन सभी

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."

मैं तालिका नाम और उपनाम के बीच "के रूप में" का उपयोग कर की कोशिश की है है, तारक के बाद से मैं सब कुछ चाहते हैं दोनों टेबल से। वही त्रुटि मैंने अन्य चीजों की कोशिश की है और अन्य त्रुटियां प्राप्त की हैं ... मैं बस यूनियन दो टेबल करना चाहता हूं। (मैंने यूनियन की बजाय यूनियन की कोशिश की है - एक ही त्रुटि)।

उत्तर

10

बस सभी को एक और शब्द के साथ बदलें। ऐसा लगता है कि एक आरक्षित कीवर्ड है। E.g:

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 
;