有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就更完美了。