巨大的数据分析

pre*_*uin 2 c++ algorithm bigdata

假设我们1e10每天都有关于日志文件的行,每个行包含:ID号(长度小于15位的整数),登录时间和注销时间.某些ID可能会多次登录和注销.

问题1:

如何计算已登录的ID总数?(我们不应将每个ID计算两次或更多)

我试图在这里使用哈希表,但我发现我们应该获得的内存可能非常大.


问题2:

计算在线用户数量最大的时间.

我想我们可能拆分一天的时间到86400秒,那么日志文件的每一行,在网上区间加1到每个秒.或者我可以按登录时间对日志文件进行排序?

Pra*_*ati 6

你可以在*nix shell中做到这一点.

  1. cut -f1 logname.log | sort | uniq | wc -l
  2. cut -f2 logname.log | sort | uniq -c | sort -r