有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序。
You have 10 files, each 1GB. Each line stores a user query, and queries may repeat across files. Sort the queries by their frequency (descending).
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: hard
分类: 大数据处理, TopK, 外排序
标签: TopK, Hash Partition, External Sort, Heap, MapReduce
参考答案摘要
核心答案 这是典型的 TopK / 频次统计 + 外排序问题,常用的思路是 Hash 分桶 + 统计 + 归并 ,或在可行时直接内存统计。 方案1(Hash分桶 + 统计 + 归并排序) 顺序读取10个文件,按照 hash(query)%10 的结果将 query 写入到另外10个文件中(记为分桶文件)。这样新生成的文件每个大小大约也为 1G(假设hash函数是随机的)。 找一台内存在2G左右的机...
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。