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