Как обрабатывать Python Polars LazyFrame в пакетном режимеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как обрабатывать Python Polars LazyFrame в пакетном режиме

Сообщение Anonymous »

Я хотел бы отложенно загрузить большой файл паркета. Затем мне нужно обработать его пакетно, потому что я пишу в базу данных, и существует ограничение на количество строк, которые можно записать в базу данных одновременно. В LazyFrame нет метода write_database, поэтому я собираю пакеты в фрейм данных, чтобы использовать DataFrame.write_database.
Проблема в том, что сбор фрейма данных занимает больше времени, пока я работаю над ним. пакеты, но только для определенных наборов данных. Если оба столбца в кадре являются строками, сбор происходит достаточно быстро: первый сбор занимает ~0,02 секунды, а последующие сборы занимают около 1,5 секунды. Но если один столбец — i64, первый сбор выполняется примерно за 0,02 секунды, но последующие операции сбора занимают более 10 секунд, и использование оперативной памяти компьютера увеличивается. Предполагаемый размер различных пакетов данных примерно одинаков для всех наборов данных: 7–8 МБ.
Вот упрощенный код:

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

lf = pl.scan_parquet(file)

n_batch = 100_000
row = 0

while row < 500_000:
lf_batch = lf.slice(row, n_batch)
df_batch = lf_batch.collect()
row += n_batch
Есть ли лучший способ сбора пакетов?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Python Polars: Как добавить столбцы в одну LazyFrame в другой LazyFrame?
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • В чем разница между Polars.collect_all и Polars.LazyFrame.collect
    Anonymous » » в форуме Python
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Как обрабатывать DataTable с более чем 4000 строками в пакетном режиме для добавления, изменения или удаления в БД
    Anonymous » » в форуме C#
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Python Polars: как получить количество строк LazyFrame?
    Anonymous » » в форуме Python
    0 Ответы
    85 Просмотры
    Последнее сообщение Anonymous
  • Polars-python: is_in для lazyframe TypeError
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

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