2015-11-10 5 views
1

В настоящее время у меня есть несколько файлов данных SAS размером 50 ГБ (sas7bdat), и я хотел бы переключить предыдущий код SAS на инструмент с открытым исходным кодом, такой как R или Python. Самая большая проблема заключается в том, как бороться с этими гигантскими файлами ... Я попытался экспортировать один файл размером 50 ГБ в файл CSV, а затем использовал fread в R, чтобы загрузить его. Тем не менее, он раздавлен во время загрузки файла. Поэтому мне интересно, как лучше всего справиться с этой проблемой? Заранее спасибо!Загрузка больших данных SAS в R/Python

+3

Есть ли у вас достаточно оперативной памяти, чтобы сохранить такой большой объект в памяти? Если нет, вам нужно посмотреть пакеты R для данных из памяти. См. Этот вид задачи: https://cran.r-project.org/web/views/HighPerformanceComputing.html – Roland

+0

@Roland У меня только 16 ГБ и да, я боюсь, что этого недостаточно, чтобы загрузить все в память ... –

+0

данные в базу данных, такие как SQLite – Carl

ответ

1

Первые несколько вещей, чтобы принять во внимание:

  • несжатого SAS файлы огромны. 50GB, вероятно, < 10GB как CSV.
  • R - это борода. Вы не сможете это сделать с помощью vanilla R.
  • Python на самом деле довольно эффективен с памятью при обработке списков (т. Е. Записей), он может просто соответствовать/работать в зависимости от того, что вы хотите делать.
  • Ни один из них не обеспечивает параллельный параллелизм, ему нужен модуль R/python. Поэтому по умолчанию он будет медленным, даже если он подходит для памяти.
  • Вы можете в какой-то мере уклониться от проблемы «все в памяти» в Python, убедившись, что вы используете итерации везде, а не везде, где все время переводится в списки.

Но это удобное решение для вас было бы использовать Python вместе с PySpark (или R с SparkR, но бывший более зрелый в данный момент):

  • Не все потребности быть в памяти сразу
  • Вы получаете параллельность из коробки
  • Если вы являетесь «одним из тех людей», использующим proc sql во всем мире, вы можете использовать Spark SQL для легкого повторного использования вашей работы.

Посмотрите на проект: https://spark.apache.org

+0

Большое спасибо за находчивый ответ! Я посмотрю на PySpark. Кроме того, преобразованный CSV-файл не маленький ~ 30 ГБ ... –

Смежные вопросы