hive中去重的操作

hive中去重的操作

1:distinct

SELECT DISTINCT * FROM

在hive中distinct必须只有一个reduce才能完成整体的去重,效率极低,不能使用

2:group by

不会数据倾斜,可以使用多个reduce,但是需要查询什么字段就需要在group by跟上什么字段

3:row_number() over()

分组后取第一条数据

with t as (
	select * ,row_number() over(partition by id) rk from)
select * from t where rk =1;

rank() dense_rank() 在存在重复数据的时候会打上相同的编号,所以只能使用row_number()

你可能感兴趣的:(hive,hive,大数据,hadoop)