如何合并配置单元中的行?

wfypjpf4  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(374)

我在hive中有一个生产表,它每天从外部源获取增量(更改的记录/新记录)数据。因为行中的值可能分布在不同的日期,例如,表中的记录在第一天是这样的

+---+----+----+
| id|col1|col2|
+---+----+----+
|  1|  a1|  b1|
|  2|  a2|    |
|  3|    |  b3|
+---+----+----+

在第二天,我们得到了以下-

+---+----+----+
| id|col1|col2|
+---+----+----+
|  4|  a4|    |
|  2|    | b2 |
|  3|  a3|    |
+---+----+----+
which has new record as well as changed records

我想要实现的结果是,基于主键(本例中为id)合并行,并生成和输出-

+---+----+----+
| id|col1|col2|
+---+----+----+
|  1|  a1|  b1|
|  2|  a2| b2 |
|  3|  a3|  b3|
|  4|  a4|  b4|
+---+----+----+

列的数量非常庞大,通常在100-150之间。目标是提供到目前为止接收到的所有数据的最新完整视图。如何在hive本身中实现这一点(附言:不需要分类)

ccgok5k5

ccgok5k51#

这可以使用合并和完全外部连接来存档。

SELECT COALESCE(a.id ,b.id) as id ,
            COALESCE(a.col1 ,b.col1) as  col1,
            COALESCE(a.col2 ,b.col2) as col2 
        FROM tbl1 a 
        FULL OUTER JOIN table2 b
           on a.id =b.id

相关问题