H***e 发帖数: 476 | 1 有个超大文件,每行存一个string,要求去除重复,如果直接hash行string的话,放不
进内存
如果存 md5(string)做为 key 存进hashmap,有可能存下,但是有可能不同string重复
key,我在想,
我可以把hashmap 的value用来存此string在原文件中的行数,那么重复的时候,可以
去原文件,看一下,是不是真的重复
只是这样如果不能直接读某行string的话,sequential的读花费就太高了。 | p*****2 发帖数: 21240 | 2
不能随机。
【在 H***e 的大作中提到】 : 有个超大文件,每行存一个string,要求去除重复,如果直接hash行string的话,放不 : 进内存 : 如果存 md5(string)做为 key 存进hashmap,有可能存下,但是有可能不同string重复 : key,我在想, : 我可以把hashmap 的value用来存此string在原文件中的行数,那么重复的时候,可以 : 去原文件,看一下,是不是真的重复 : 只是这样如果不能直接读某行string的话,sequential的读花费就太高了。
| c*****e 发帖数: 737 | 3 当然可以set file pointer to wherever you want,但你要知道这个地方的offset.这
事情我以前干过。
【在 H***e 的大作中提到】 : 有个超大文件,每行存一个string,要求去除重复,如果直接hash行string的话,放不 : 进内存 : 如果存 md5(string)做为 key 存进hashmap,有可能存下,但是有可能不同string重复 : key,我在想, : 我可以把hashmap 的value用来存此string在原文件中的行数,那么重复的时候,可以 : 去原文件,看一下,是不是真的重复 : 只是这样如果不能直接读某行string的话,sequential的读花费就太高了。
| l***i 发帖数: 1309 | 4 Why don't you cut the big file into pieces and do a multiway merge. |
|