合并Hive中的两个表并进行数据验证

时间:2015-09-26 08:55:45

标签: hadoop hive hiveql

我有两个表有一些类似的列。说,
Table Xid,first_name last_name Table Yid,email_id, first_name

但是这两个表都不完美,所以我需要从另一个表中的数据填充两个表中的空值(使用一些键(例如id))并将其推送到另一个表。

我怎样才能有效地做到这一点?

1 个答案:

答案 0 :(得分:3)

只需加入表格,然后写一个case语句。

示例0

select x.id as id
  , case when x.first_name is null then y.first_name else x.first_name end as first_name
  , x.last_name as last_name
  , y.email_id as email_id
from db.tableX x
join db.tableY y
on y.id = x.id

或者您可以使用if语句执行相同的操作。

示例1

select x.id as id
  , if(x.first_name is null, y.first_name, x.first_name) as first_name
  , x.last_name as last_name
  , y.email_id as email_id
from db.tableX x
join db.tableY y
on y.id = x.id