2 naeux naeux 于 2017.09.07 17:07 提问

如何清除hbase表中重复数据

类似mysql中table1表
id name
1 name1
2 name2
3 name1
我们可以使用
delete table1 from table1, (select max(id) mid, name from table1 group by name having count(id) > 1 ) as t2 where table1.name = t2.name and table1.id != t2.mid;
语句清除重复name值的数据,只保留其中重复数据中id最大的数据,得到:
id name
2 name2
3 name1

那么在hbase中,怎么清除表中某字段值重复的记录,而保留重复数据中最后一条数据?

求大神解答

1个回答

qq_17476231
qq_17476231   2017.09.07 17:11

用主键分组然后找到最大或最小的记录,不是最大或最小的记录全部删除

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
hbase做snapshot快照失败,导致原表数据重复,解决方法
问题描述:由于要对环境hbase表数据做备份,就选择hbase快照snapshot的形式,刚开始很稳定,每天spark任务都正常跑,数据也没什么问题,最近spark跑任务时发现hbase表数据有重复,对,你没听错,hbase有重复数据,奇怪吧,看日志时发现hbase表在做快照时报错,如下图: 通过报错可以看出来是hbase表在做快照时底层的region有移动,移动就几种形式:split,co
HBase中删除整张表的数据
HBase中删除整张表的数据
MySql 删除表中重复的数据(但要保留一条)
今天遇到一个问题。相同的数据在同一张表里出现了多次。我的需求是删除多余的数据,但要保留其中一条。 定义 表明 table_a ,判断唯一的两个字段 c_1,c_2,无关字段data 表中原始数据如下 首先我们要查看数据库中那些数据重复了,执行如下SQL SELECT * FROM (SELECT COUNT(*) as num,c_1,c_2 FROM table_a GROUP
Mysql 查询表中重复数据和删除表中重复的数据
1、根据指定条件查询表中的重复记录 select * from t_official_sys_user where USER_NAME in (select USER_NAME from (select USER_NAME from t_official_sys_user group by USER_NAME having count(USER_NAME) > 1) as t
清除重复数据.rar
清除重复数据.rar清除重复数据.rar清除重复数据.rar
db2如何删除完全一样的重复数据
若在建表的时候没有设立唯一性约束,而碰巧又插入了两笔一模一样的数据,该如何删除其中的一笔数据呢?假设有一张名为Test的表,其中有两个属性Col1和Col2,可以使用以下语句来操作:delete from (select Col1,row_number() over (partition by Col1 order by Col1 ) as rn,a.* from Test a) where rn
HBase暴力删除HDFS数据后建表出现Table already exist问题的解决
在一些情况下,不得不对HBase数据进行暴力删除,这种情况如原始数据量特别大,而又不需要存储的时候。或者HBase无法启动等问题。 删除比较简单,直接调用hadoop fs -rm -r /hbase这样的命令即可实现对HDFS上存储的HBASE原始文件进行删除。(当然细划的可以删除掉某个具体的数据表)。 但是在删除完毕后,重启HBase后,创建数据表时候,发现出现table
mysql查询表里的重复数据方法和删除重复数据
mysql查询表里的重复数据方法: 1 2 3 4 INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),('qmf2', 'qmf11')   delete from hk_test where username='qmf1' and passwd='qm
清理Kylin的中间存储数据(HDFS & HBase Tables)
Kylin在创建cube过程中会在HDFS上生成中间数据。另外,当我们对cube执行purge/drop/merge时,一些HBase的表可能会保留在HBase中,而这些表不再被查询,尽管Kylin会做一些自动的垃圾回收,但是它可能不会覆盖所有方面,所以需要我们能够每隔一段时间做一些离线存储的清理工作。具体步骤如下: 1.     检查哪些资源需要被清理,这个操作不会删除任何内容: ${KYL
删除Hbase的META中多余表项
由于操作HBase比较粗犷,有时直接在Hadoop中删除hbase对应的表,导致.META.中还记录着表项,但实际存储空间中却没找到。这样就会导致HBase的log中总在报错,说找不到xxx表,而且log在飞快增长。 办法是删除.META.中对应表项。 原来,.META.和-ROOT-其实也是hbase的两个特殊的表,这就是说,我们可以scan、delete等对其进行操作。 1. s