Оптимизируйте процесс обработки файлов, размер которых превышает объем памяти, с помощью Python (Pandas).Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Оптимизируйте процесс обработки файлов, размер которых превышает объем памяти, с помощью Python (Pandas).

Сообщение Anonymous »

Я храню цены на акции для разных организаций в виде отдельных файлов перьев в корзине S3. На высоком уровне содержимое любого файла перьев выглядит так, как показано ниже.

Код: Выделить всё

month | value | observation |
-----------------------------
2024-01 | 12 | High

2024-01 | 5 | Low
Лямбда-функция, написанная на Python, использует pandas для обновления этих данных — вставки новых строк, обновления существующих строк, удаления строк и т. д.
Каждый день, когда получены новые цены для данного объекта, существующий код считывает файл пера для этого объекта в память (с помощью pandas) и объединяет входящие новые данные, а затем записывает обновленный файл пера из памяти обратно в S3. На данный момент это работает нормально, но по мере роста размера этих файлов перьев в некоторых случаях мы видим исключения «недостаточно памяти», когда лямбда пытается загрузить большой файл перьев в память во время операций слияния. Это тот случай, когда я выделил лямбде 10 ГБ (макс.) памяти.
Все поддерживаемые операции — слияние, обновление, удаление выполняются в памяти после полной загрузки файлов в памяти.
Есть ли лучший способ или другая библиотека, которая может помочь мне выполнять эти слияния/другие операции, не загружая все в память? Я проверяю DuckDB и вижу, что она поддерживает понижение уровня предиката до уровня хранилища, но не поддерживает файлы перьев изначально.
Ищу другие идеи для решения этой проблемы.
Спасибо
Обновление
Мы делаем разделение дат по годам в файлах перьев. Это замедляет операцию слияния, поскольку мне приходится обращаться к нескольким разделам, если входящие данные (в данном случае загрузка вручную) содержат точки данных за разные годы.
Кроме того, когда пользователь может запросить данные за несколько лет... например, запрос может сказать -> дайте мне все данные с «высоким» наблюдением, мне все равно нужно посетить несколько разделов, что может замедлить работу.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ing-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»