3
我有一個巨大的(4,5 GB)csv文件..我需要執行基本的剪切和粘貼,替換某些列的操作..數據組織得很好。 。唯一的問題是我無法使用Excel播放它,因爲它的大小(2000行,550000列)。讀/寫/查找/替換巨大的csv文件
這裏是數據的某些部分:
ID,Affection,Sex,DRB1_1,DRB1_2,SENum,SEStatus,AntiCCP,RFUW,rs3094315,rs12562034,rs3934834,rs9442372,rs3737728
D0024949,0,F,0101,0401,SS,yes,?,?,A_A,A_A,G_G,G_G
D0024302,0,F,0101,7,SN,yes,?,?,A_A,G_G,A_G,?_?
D0023151,0,F,0101,11,SN,yes,?,?,A_A,G_G,G_G,G_G
我需要刪除第4,第5,第6,第7,第8和第9列; 我需要找到列10以後的每個_字符,並用空格()字符替換它; 我需要替換每個?與零(0); 我需要用選項卡替換每個逗號;我需要刪除第一行(有列名; 我需要用1替換每個0,每個1用2代替;第二列用0代替; 我需要用2代替F,用1代替F,與0在第三柱;
,使得生成的文件中的輸出讀取:
D0024949 1 2 A A A A G G G G
D0024302 1 2 A A G G A G 0 0
D0023151 1 2 A A G G G G G G
(輸入和輸出兩者都應該讀每行一個行,NE額外的空白行) 是否有有效的存儲器這樣做與java(我需要一個代碼來做到這一點)或一個可用的工具來播放這個大數據,這樣我就可以輕鬆地應用Excel功能..
你可以考慮類似的工具[sed和awk(http://www.faqs.org/ docs/abs/HTML/sedawk.html) – miku 2010-06-02 13:10:20
爲什麼不簡單地讀取一行數據,解析爲逗號分隔符,執行所需的操作,將新的逗號分隔的行寫入新文件,返回步驟1。乾淨,那麼你可以簡單地分割線上的逗號或解析與基本的csv規則,甚至正則表達式可能工作。我看不出有什麼困難? – 2010-06-02 13:26:23