Проблема с производительностью при записи Polars.DataFrame в файл .parquetPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблема с производительностью при записи Polars.DataFrame в файл .parquet

Сообщение Anonymous »

Описание:
Я обновляю свой набор данных (в формате Parquet), но столкнулся с проблемами производительности. Набор данных довольно большой (28 миллионов строк), поэтому я не могу опубликовать его здесь полностью, но (надеюсь) четко опишу проблему.
Проблема возникает при объединении два DataFrame и запишите результат обратно в Parquet. Вот упрощенный код:

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

df_old.write_parquet("df_old.parquet") # costs 5.8s
df_to_append.write_parquet("df_to_append.parquet") # costs 0.4s

result = pl.concat([df_old, df_to_append])
result.write_parquet("result.parquet") # costs 1m 37.3s !
Кроме того, чтение этого файла паркета происходит медленно.

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

pl.read_parquet("df_old.parquet") # 0.5s
pl.read_parquet("df_to_append.parquet") # 0.0s
pl.read_parquet("result.parquet") # 3.6s !
  • Я попробовал это в своем офисе, медленно. А теперь дома, очень медленно. Так что я думаю, это не зависит от машины.
Что я пробовал:
  • количество строк выглядит корректным, как и ожидалось.

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

df_old
# shape: (27_796_178, 13)

df_to_append
# shape: (1_144_920, 13)

result
# shape: (28_941_098, 13)
[*]Схемы для df_old и df_to_append идентичны, и они также соответствуют результату.

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

df_old.schema
Output: Schema([('datetime', Datetime(time_unit='ns', time_zone=None)),
('trading_date', Date),
('sec_code', String),
('contract_code', String),
('open', Float64),
('high', Float64),
('low', Float64),
('close', Float64),
('vwap', Float64),
('open_interest', Float64),
('volume', Float64),
('amount', Float64),
('offset', Int64)])

df_to_append.schema
Output: Schema([('datetime', Datetime(time_unit='ns', time_zone=None)),
('trading_date', Date),
('sec_code', String),
('contract_code', String),
('open', Float64),
('high', Float64),
('low', Float64),
('close', Float64),
('vwap', Float64),
('open_interest', Float64),
('volume', Float64),
('amount', Float64),
('offset', Int64)])

result.schema
Output:Schema([('datetime', Datetime(time_unit='ns', time_zone=None)),
('trading_date', Date),
('sec_code', String),
('contract_code', String),
('open', Float64),
('high', Float64),
('low', Float64),
('close', Float64),
('vwap', Float64),
('open_interest', Float64),
('volume', Float64),
('amount', Float64),
('offset', Int64)])

Несмотря на эти проверки, я по-прежнему сталкиваюсь с огромной задержкой при записи объединенного результата в Parquet. Я понятия не имею, что делать дальше. Будем очень признательны за любую помощь или идеи!
Дополнительная информация:
Python 3.13 с полярными версиями 1.12.0
Вот пример представления df_old:
df_old:polars.DataFrame

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Потоковая потоковая передача Polars: Parquet Parquet на основе Shift (-1)
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Чтение файлов Parquet с использованием parquet.net занимает больше времени, чем Pyarrow (Python)
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Java.lang.UnsatisfiedLinkError в PySpark при записи в файл Parquet в Windows
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Как прочитать файл Parquet в Pandas DataFrame?
    Anonymous » » в форуме Python
    0 Ответы
    52 Просмотры
    Последнее сообщение Anonymous
  • Добавьте столбец даты для каждого файла с помощью Polars при агрегировании нескольких файлов Parquet.
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

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