Hadoop 合并配置单元表上的重复记录
我有下表,其中包含增量更新。我需要编写一个普通的配置单元查询,将具有相同键值的行与最近的值合并Hadoop 合并配置单元表上的重复记录,hadoop,hive,hiveql,Hadoop,Hive,Hiveql,我有下表,其中包含增量更新。我需要编写一个普通的配置单元查询,将具有相同键值的行与最近的值合并 Key | A | B | C | Timestamp K1 | X | Null | Null | 2015-05-03 K1 | Null | Y | Z | 2015-05-02 K1 | Foo | Bar | Baz | 2015-05-01 想要获得: Key | A | B | C | Timestamp K1
Key | A | B | C | Timestamp
K1 | X | Null | Null | 2015-05-03
K1 | Null | Y | Z | 2015-05-02
K1 | Foo | Bar | Baz | 2015-05-01
想要获得:
Key | A | B | C | Timestamp
K1 | X | Y | Z | 2015-05-03
使用first_value()函数获取最后一个非空值。需要连接排序键,因为最后一个值仅与一个排序键一起工作
演示:
输出:
OK
key a b c timestamp
K1 X Y Z 2015-05-03
使用first_value()函数获取最后一个非空值。需要连接排序键,因为最后一个值仅与一个排序键一起工作
演示:
输出:
OK
key a b c timestamp
K1 X Y Z 2015-05-03
第一个想法-合并,但我不认为这是正确的如果列更少,您可以尝试,因为hive不支持再次调用CTE来创建新CTE,您必须创建一个新表或在修剪存储中。然后我有一些解决方案…第一个想法-合并,但我不认为这是正确的,如果列较少,您可以尝试,因为hive不支持再次调用CTE来创建新CTE,您必须创建一个新表或在修剪存储中。然后我有一些解决方案。。