Лучший или хороший способ обработки больших файлов паркета с помощью Python - PullRequest
0 голосов
/ 07 мая 2020

В моей компании мы начнем перенос процессов Oracle PL SQL на Python, и наши данные будут храниться в файлах Parquet. Это более длинная история, почему именно эти технологии, но поверьте мне, это имеет смысл. :)

Средний процесс будет выглядеть так:

  1. Загрузка / чтение файлов Parquet в Python процессе
  2. Если источником данных более одного файла , объединение данных (фреймы данных).
  3. Выполните некоторые математические вычисления с данными.
  4. Сохраните результат в файл Parquet.

В качестве теста я удалось перенести один процесс, и он работает, результаты хорошие. Однако до сих пор я пробовал только на своем ноутбуке с меньшими тестовыми данными, и я не уверен, какова будет производительность с производственными данными. Файлы паркета большего размера могут занимать 1-2 ГБ.

Вот что я сделал:

  1. Загрузил / прочитал файлы Parquet с помощью pyarrow.
  2. Таблицы pyarrow преобразованы в pandas фреймы данных.
  3. Отфильтрованы и объединены фреймы данных в соответствии с требованиями.
  4. Я провел математические вычисления (до того, как мне пришлось группировать по).
  5. Сохраненный результат в файл Parquet.

Что вы думаете об этом решении? Я также читал о dask dataframe (почти такой же, как pandas, но с возможностью параллелизма), но я не мог сделать все, что мог, с pandas dataframe. Итак, в основном мой вопрос заключается в том, есть ли у меня хороший подход или нет, или как лучше всего производить вычисления на большом наборе данных в Python (pandas хорошо или нет, et c).

Большое спасибо за ваш совет и помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...