Re: [問題] 大量資料處理
※ 引述《jackal11 (NC)》之銘言:
: 小弟最近要處理幾百萬筆的資料,格式以.txt檔為主
: 除了原本的資料檔外,還要另外Output出兩個檔
: 兩個檔的差別就在於
: 一個檔是印出原本資料檔裡,所有重複的字串
: 而另一個檔則是印出原本資料檔裡,所有不重複的字串
: 而小弟所遇到的問題就是
: 我在程式裡每讀一筆資料,就要跟之前的"""已讀的"""資料比對一次
: 然後就很耗時間........
: 想問大家有沒有哪種"""程式語言"""(混合也可),可以較為快速處理大量的文字資料
: -----
: PS希望可以不要用到database來處理
: 先感謝大家了>___<"
: -----
: 補充一下,目前小弟是用python中的字典,來存放key和value
: 跑了半小時,只跑了5000筆資料><"
我覺得可以用MapReduce這種方法. 計算的主力也可以不要用記憶體撐,除非
速度是重點.
如果是使用檔案系統,我這個例子是MapReduce的轉型:
//Mapper
for (i=0; i<n; i++) {
if file_exist(treat_as_file(Base + "\only\" + data(i))) {
touch(treat_as_file(Base + "\dup\" + data(i)));
delete(treat_as_file(Base + "\only\" + data(i)));
} else if !file_exist(treat_as_file(Base + "\dup\" + data(i))) {
touch(treat_as_file(Base + "\only\" + data(i)));
}
}
//Reducer
for (i=0; i<get_files_count(treat_as_folder(Base + "\only\")); i++) {
append(get_files_under(treat_as_folder(Base + "\only\")[i],
Target_File_For_Data_Only);
}
for (i=0; i<get_files_count(treat_as_folder(Base + "\dup\")); i++) {
append(get_files_under(treat_as_folder(Base + "\dup\")[i],
Target_File_For_Data_Duplicate);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.47.109
推
09/10 23:44, , 1F
09/10 23:44, 1F
→
09/11 06:24, , 2F
09/11 06:24, 2F
→
09/11 06:24, , 3F
09/11 06:24, 3F
→
09/11 10:19, , 4F
09/11 10:19, 4F
討論串 (同標題文章)