logo

有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 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案。

← 返回面试题库

有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序。

Hardalgorithmsdata-structuressystem-design

想查看完整答案?

登录匠人学院学习中心,获取 STAR 格式回答和详细技术解析

前往学习中心查看答案