У меня есть 6 больших матриц tsv размером 60 ГБ (несжатых), содержащих 20 миллионов строк x 501 столбец: первый индексный/целочисленный столбец, который в основном является номером строки (поэтому даже не требуется), 500 столбцов являются числовыми (с плавающей запятой, 4 десятичных знака, например, 1,0301). Все tsv имеют одинаковое количество строк, которые соответствуют друг другу.
Мне нужно извлечь строки по номеру строки.
Мне нужно извлечь до 5000 смежных строк или до 500 несмежных строк, а не миллионы. Надеюсь, также есть какое-то сжатие, чтобы уменьшить размер до 60gb, так что, может быть, нет SQL? Как лучше всего это сделать?
Один из способов, который я пробовал, — разделить их на 100 сжатых gzip-файлов, проиндексировать их с помощью tabix, а затем запросить их, но это слишком медленно для моих нужд (500 случайных строк заняли 90 секунд).
Читал про пакет ff, но не нашел как индексировать по первому столбцу?
Есть ли другие способы?
Спасибо большое.