У меня огромный файл с разделителями табуляции. (10 000 предметов в виде строк и> 1 миллиона анализов в виде столбцов).
У меня есть файл сопоставления, который содержит информацию, связанную с каждым из 1 миллиона столбцов.
Мне нужно для каждого субъекта, для каждого анализа (для каждой ячейки) заглянуть в файл сопоставления, получить для него некоторое значение и заменить существующее значение.
В Python или Perl мне пришлось бы читать каждую строку, разбивать ее и для каждой ячейки искать в файле отображения.
В R я мог читать каждый столбец за раз, и для всех строк получать информацию из файла сопоставления.
В любом случае весь процесс циклического прохождения каждой строки или столбца занимает много времени, так как необходимо выполнить поиск каждой ячейки.
Есть ли способ, которым я мог бы распараллелить это? Как я должен думать, если я хочу распараллелить это и сделать это быстрее?
Кроме того, мне интересно узнать, как подойти к этому в стиле карты / уменьшения?
Пример файла данных выглядит следующим образом: (разделенный табуляцией)
ID S1 S2 S3 S4 S5
1 AA AB BA BB AB
2 BA BB AB AA AA
3 BA AB AB AB AB
4 BA AB AB BB AA
5 AA AB BA BB AB
6 AA BB AB AA AA
Файл отображения
выглядит следующим образом:
SID Al_A Al_B
S1 A C
S2 G T
S3 C A
S4 G T
S5 A C
Таким образом, в файле данных, в каждой ячейке, для каждого A и B необходимо выполнить поиск в файле отображения, чтобы увидеть, на что A отображается (из столбца Al_A), и на что B отображается (на (из Столбец Al_B).