业务需要根据每个用户的访问频次进行排序,但是大量的用户访问次数都集中在很少的频次,根据频次排序会有严重的数据倾斜,这里提供一种方式,比如原始数据如下,两列(用户ID, 频次count)
user001,1000
user002,1002
user003,2
user004,1
第一步:按照如下规则新增一列Vcount,(假设频次集中在100以内)
如果count大于等于100, Vcount = count;
如果count小于100,Vcount = -(100-count) * 10000 + random(10000)
第二步,根据Vcount排序就ok了。