Здравствуйте, коллеги-разработчики!
В настоящий момент я работаю над системой обработки данных в реальном времени на Python и Pandas, где я сталкиваюсь с большими кадрами данных, которые невозможно полностью удержать в памяти. . Моя цель — сбалансировать использование доступных ресурсов памяти, одновременно достигая более высокой эффективности и производительности при операциях с данными и манипуляциях с ними.
В частности, позвольте мне иметь следующий источник данных: с миллионами записей и некоторыми числовыми и категориальными полями. На данный момент я использую фрагменты и пытаюсь прочитать фрагменты данных с помощью Pandas read_csv с размером фрагмента, но у меня возникают проблемы с памятью и скоростью.
Была ли какая-либо возможность порекомендовать более сложный вариант? подходы или программы для работы с такими объемами данных на Python? На данный момент меня интересуют методы эффективного сбора, обработки и обобщения больших потоков данных.
Любая помощь или пример кода будут высоко оценены при разработке вышеуказанного дизайна пользовательского интерфейса. Спасибо!
Во-первых, я попытался создать конвейер обработки данных в реальном времени, который является распространенным подходом при работе с большими наборами данных, которые не помещаются в память; для этого я использовал фрагментацию Pandas с функцией read_csv и установкой размера фрагмента. Я ожидал, что порции данных будут обрабатываться таким образом, чтобы каждый этап обработки мог выполняться как можно быстрее, занимать как можно меньше памяти и быть как можно более общим. Тем не менее, у меня возникают проблемы с памятью и вычислениями, особенно когда потоки данных очень велики и требуют использования оптимизированных методов или пакетов, которые могут эффективно управлять такими размерами в Python.
Подробнее здесь: https://stackoverflow.com/questions/786 ... and-pandas