B*****p 发帖数: 339 | 1 如果有很多很多streaming的data,想统计有多少unique的entry
hashtable存不了太多,因为内存限制,如果允许一定的error,怎么统计
想了好多方案,貌似都不是怎么nice. 欢迎大侠们讨论 | w***g 发帖数: 5958 | 2 bloom filter
【在 B*****p 的大作中提到】 : 如果有很多很多streaming的data,想统计有多少unique的entry : hashtable存不了太多,因为内存限制,如果允许一定的error,怎么统计 : 想了好多方案,貌似都不是怎么nice. 欢迎大侠们讨论
| t******e 发帖数: 1293 | 3 一看到说允许一定错误的,马上就要说bloom filter了
【在 w***g 的大作中提到】 : bloom filter
| y*********e 发帖数: 518 | 4 可以用类似外部文件排序的方法解。
对于目标文件,读取每一行,然后计算hash。根据hash值,把这一行存入到不同的文件
中。
这一步完成之后,就相当于把文件拆成数个小文件了。每一个就可以用hashtable解。
对整个文件读2遍,写2遍。
优化的方案可以有:用2颗硬盘,一个专门读,一个专门写。若是有多个机器,可以用
MapReduce。
【在 B*****p 的大作中提到】 : 如果有很多很多streaming的data,想统计有多少unique的entry : hashtable存不了太多,因为内存限制,如果允许一定的error,怎么统计 : 想了好多方案,貌似都不是怎么nice. 欢迎大侠们讨论
| B*****p 发帖数: 339 | 5 这个也是我的第一反应, 然后立马错了...
虽然我不知道哥好得办法,但是人家说不知道为啥要用bloom filter,不能解决问题
【在 t******e 的大作中提到】 : 一看到说允许一定错误的,马上就要说bloom filter了
|
|