Чтение / запись / поиск / замена огромного CSV-файла - PullRequest
3 голосов
/ 02 июня 2010

У меня огромный (4,5 ГБ) CSV-файл. Мне нужно выполнить основные операции вырезания и вставки, замены некоторых столбцов. Данные довольно хорошо организованы. Единственная проблема - я не могу поиграть с ним. в Excel из-за размера (2000 строк, 550000 столбцов).

вот некоторая часть данных:

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); Мне нужно заменить каждую запятую на вкладку; Мне нужно удалить первую строку (которая имеет имена столбцов; Мне нужно заменить каждые 0 на 1, каждый 1 на 2 и каждый? с 0 во 2-м столбце; Мне нужно заменить F на 2, M на 1 и? с 0 в 3-й колонке;

так, чтобы в результирующем файле вывод был:

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

(и вход, и выход должны читать по одной строке на строку, без дополнительной пустой строки) Есть ли эффективный способ использования памяти с помощью Java (и мне нужен код для этого) или удобный инструмент для игры с такими большими данными, чтобы я мог легко применять функциональность Excel ...

1 Ответ

1 голос
/ 02 июня 2010

Вам нужно две вещи:
- Знание регулярных выражений (Regex, Regexes)
- PowerGrep

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...