使用HiveQL进行重复数据消除

使用HiveQL进行重复数据消除,hive,hiveql,deduplication,Hive,Hiveql,Deduplication,我有一个带有字段“a”(int)、“b”(string)、“c”(bigint)、“d”(bigint)和“e”(string)的配置单元表。 我有如下数据: a b c d e --------------- 1 a 10 18 i 2 b 11 19 j 3 c 12 20 k 4 d 13 21 l 1 e 14 22 m 4 f 15 23 n 2 g 16 24 o 3 h 17 25 p 表按键“b”排序。

我有一个带有字段“a”(int)、“b”(string)、“c”(bigint)、“d”(bigint)和“e”(string)的配置单元表。
我有如下数据:

a  b  c   d   e
---------------
1  a  10  18  i
2  b  11  19  j
3  c  12  20  k
4  d  13  21  l
1  e  14  22  m
4  f  15  23  n
2  g  16  24  o
3  h  17  25  p
表按键“b”排序。
现在我们希望输出如下所示:

a  b  c   d   e
---------------
1  e  14  22  m
4  f  15  23  n
2  g  16  24  o
3  h  17  25  p
将在键“a”上删除重复数据,但保留最后一个(最新的)“b”


是否可以使用配置单元查询(HiveQL)?

如果列b是唯一的,请尝试遵循hql:

select 
* 
from
(
    select max(b) as max_b
    from
    table
    group by a
) table1
join table on table1.max_b = table.b

这可以用一个非常简单的Map/Reduce作业来表示,该作业只有一个映射器