У меня есть большой объем данных (несколько терабайт) и накапливается ... Они содержатся во многих текстовых файлах с разделителями табуляции (каждый около 30 МБ). Основная задача состоит в том, чтобы считывать данные и агрегировать (суммирование/усреднение + дополнительные преобразования) по наблюдениям/строкам на основе ряда предикатных операторов, а затем сохранять вывод в виде текстовых, HDF5 или SQLite-файлов и т. Д. Обычно я использую R для таких задач, но я боюсь, что это может быть немного большим. Некоторые решения кандидаты должныбольшой объем данных во многих текстовых файлах - как обрабатывать?
- написать все это в C (или Fortran)
- импортировать файлы (таблицы) в реляционной базы данных непосредственно и затем стянуть куски в R или Python (некоторые преобразований не поддаются для чистых решений SQL)
- написать все это в Python
Would (3) быть плохой идеей? Я знаю, что вы можете обернуть C-подпрограммы в Python, но в этом случае, поскольку нет ничего вычислимого запретительного (например, оптимизационных процедур, требующих много итеративных вычислений), я думаю, что I/O может быть как узким местом, так и самим вычислением. Есть ли у вас рекомендации относительно дальнейших соображений или предложений? Спасибо
Редактировать Спасибо за ваши ответы. Похоже, что существуют противоречивые мнения о Hadoop, но в любом случае у меня нет доступа к кластеру (хотя я могу использовать несколько несовместимых машин) ...
Отличный вопрос, это похоже на ту же проблему, что и у меня с данными биологической последовательности. – Stedy