面试常问问题

本文介绍了一种处理大规模数据集的有效方法,通过数据分隔、局部排序和全局排序的步骤,实现了从一百万行商品ID记录中找出购买频率最高的前一百个商品。此方法适用于大数据环境下,无法一次性加载全部数据到内存的情况。
摘要由CSDN通过智能技术生成

1.有一个一百万行的文件,内部是购买的商品ID,如何获取到购买最多的前一百个商品。

•思路:首先考察的肯定是大数据处理方案,这些数据肯定不能一次性读取到内存,那就需要拆分,将数据分隔处理。假设要分隔为 n 个文件。

•分隔:如果 ID 是整型的话,可以直接采用取模(id % n)的方式;如果 ID 是字符串可以先计算 hash 值然后再取模(hash(x) % n)的方式,将相同 ID 的商品分到同一个文件中。

•针对每个小文件进行 top100的排序,返回购买最多的100个商品 ID

•根据 n 个文件中的100个 ID,在进行一次排序,即可得到需要的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值