avatar
f*l
1
给出一堆log, 里面有photo id和访问时间, 还有一个iterator, 能够按照photoId
和访问时间iterate, 问如何输出top m的访问photo
followup: 如何存储这些log, 来支持方便的retrieve 这些信息.
哪位大神能给个思路吗?谢谢!
avatar
t*r
2
先遍历一遍存成哈希表 再用heap?
存在内存或缓存里 Id : list of acces time
avatar
H*s
3
如果iterator可以按photoid排序,那一个heap就可以,
否则用hashmap存photoid和count
如果单机内存不够放整个hashmap,可以考虑用distributed memory cache,比如
memcache或者redis.
存数据的时候最好用photoid shard到不同的小文件中,这样计算的时候不需要存整个
photoid的空间,可以把计算top m的工作distribute到多台机器上计算,最后merge。
也可以用mapreduce
avatar
g*u
4
log是已经写好的,还是还在不停写,要给出当前top m?
不管怎么样,都得知道每个photo的frequency,然后根据frequency做partial sort取
top m。楼主,这题是不是这意思呢?各位聪明的小白兔们说说看。

【在 f*********l 的大作中提到】
: 给出一堆log, 里面有photo id和访问时间, 还有一个iterator, 能够按照photoId
: 和访问时间iterate, 问如何输出top m的访问photo
: followup: 如何存储这些log, 来支持方便的retrieve 这些信息.
: 哪位大神能给个思路吗?谢谢!

avatar
f*l
5
不太清楚,我也是从网上看的这道题目。应该是给定的一堆log,stream的情况也可以
讨论一下哈

【在 g*****u 的大作中提到】
: log是已经写好的,还是还在不停写,要给出当前top m?
: 不管怎么样,都得知道每个photo的frequency,然后根据frequency做partial sort取
: top m。楼主,这题是不是这意思呢?各位聪明的小白兔们说说看。

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。