使用数据验证合并 Hive 中的两个表

Merging two tables in Hive with data validation

我有两个 table 有一些相似的列。说,
Table Xid,first_name last_name.
Table Yid,email_id, first_name

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

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

只需连接表,然后编写 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