1.有一个一百万行的文件,内部是购买的商品ID,如何获取到购买最多的前一百个商品。
•思路:首先考察的肯定是大数据处理方案,这些数据肯定不能一次性读取到内存,那就需要拆分,将数据分隔处理。假设要分隔为 n 个文件。
•分隔:如果 ID 是整型的话,可以直接采用取模(id % n)的方式;如果 ID 是字符串可以先计算 hash 值然后再取模(hash(x) % n)的方式,将相同 ID 的商品分到同一个文件中。
•针对每个小文件进行 top100的排序,返回购买最多的100个商品 ID
•根据 n 个文件中的100个 ID,在进行一次排序,即可得到需要的数据。