Support Questions

Find answers, ask questions, and share your expertise

Hive: Merge/union two tables with different definition.

avatar

Hi,

I've two tables in Hive which I want to merge/ union.

  • Table A has an additional column p.
  • Table B doesn't have the column p.

How can i merge both tables?

1 ACCEPTED SOLUTION

avatar
Master Guru
@Kashif Amir

Cast the column p as null (or) some value and data types of the column p needs to match on both tables.

Example:-

hive# select cast("ta" as string)p
union
select cast("tb" as string)p;
+--------+--+
| p      |
+--------+--+
| ta     |
| tb     |
+--------+--+

In the example i'm having 2 tables having same column name(p) and datatype(String) after doing union we are getting merged results.

(or)

select "i" op
union
select "ji" p;
+---------+--+
| op      |
+---------+--+
| i       |
| ji      |
+---------+--+



View solution in original post

2 REPLIES 2

avatar
Master Guru
@Kashif Amir

Cast the column p as null (or) some value and data types of the column p needs to match on both tables.

Example:-

hive# select cast("ta" as string)p
union
select cast("tb" as string)p;
+--------+--+
| p      |
+--------+--+
| ta     |
| tb     |
+--------+--+

In the example i'm having 2 tables having same column name(p) and datatype(String) after doing union we are getting merged results.

(or)

select "i" op
union
select "ji" p;
+---------+--+
| op      |
+---------+--+
| i       |
| ji      |
+---------+--+



avatar

Thank you, @Shu !