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