我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:九肖六肖三肖全年资料 > 去重 >

大规模数据的去重与排序

归档日期:05-28       文本归类:去重      文章编辑:爱尚语录

  业务中可能需要对很大量级(比如100亿)的数据(几十G)进行排序或是去重等操作,在不使用Hadoop等工具的情况下如何本地处理呢?

  首先可以确定的思路是,将这几十G的文件分成多个小文件,然后分别排序或去重,最后合并。

  在分割大文件之前有一个问题,如果数据是包括字母的字符串怎么办?这时我们需要字符串Hash函数,byvoid对一些常用函数做过总结。这里我们使用一种采用md5作为转码规则的函数,几乎不会产生碰撞。

  这样我们得到的都是数字,假如想把文件分成1000份,那么需要对每一个数字对1000取模,保证相同的数字在同一个文件内。对质数取模一般能更均匀地映射。

  之后我们维护一个堆,遍历所有文件取第一个元素,并记录文件号。每拿出一个元素就去那个文件里再取一个(直到文件被读完),调整堆结构,堆中拿出的元素就是最终的结果。返回搜狐,查看更多

本文链接:http://odigallery.com/quzhong/77.html