程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 海量數據-大眾點評面試題:有10個文件,每個文件1G,每個文件的每一行存放的都是用戶的query....

海量數據-大眾點評面試題:有10個文件,每個文件1G,每個文件的每一行存放的都是用戶的query....

編輯:編程綜合問答
大眾點評面試題:有10個文件,每個文件1G,每個文件的每一行存放的都是用戶的query....

有10個文件,每個文件1G,每個文件的每一行存放的都是用戶的query,每個文件的query都可能重復。要求你按照query的頻度排序10個文件中的所有query。
http://www.manong1024.com/q/355

最佳回答:


先說解決方案。在不計內存消耗的情況下。構建一個全局Map,其中Key為query,value為計數器。然後開10個線程,分別讀取文件,然後,操作Map,如果key已存在,value計算器加1,如果Key不存在,新增一個Entry,value記為1。。當然處理時主要多線程同步就行了。。。。當然也可以構建10個Map,都處理完後做Map合並。。。最後對Map進行排序就可以了。。。處理過程中,如果內存開銷太大可以將Map改為數據庫存儲。就可以了。。。。。。當然如果有hadoop平台直接使用wordcount就更完美了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved