Описание:
Я обновляю свой набор данных (в формате Parquet), но столкнулся с проблемами производительности. Набор данных довольно большой (28 миллионов строк), поэтому я не могу опубликовать его здесь полностью, но (надеюсь) четко опишу проблему.
Проблема возникает при объединении два DataFrame и запишите результат обратно в Parquet. Вот упрощенный код:
Несмотря на эти проверки, я по-прежнему сталкиваюсь с огромной задержкой при записи объединенного результата в Parquet. Я понятия не имею, что делать дальше. Будем очень признательны за любую помощь или идеи!
Дополнительная информация:
Python 3.13 с полярными версиями 1.12.0
Вот пример представления df_old:
df_old:polars.DataFrame
Описание: Я обновляю свой набор данных (в формате Parquet), но столкнулся с проблемами производительности. Набор данных довольно большой (28 миллионов строк), поэтому я не могу опубликовать его здесь полностью, но (надеюсь) четко опишу проблему. Проблема возникает при объединении два DataFrame и запишите результат обратно в Parquet. Вот упрощенный код: [code]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 ! [/code] Кроме того, чтение этого файла паркета происходит медленно. [code]pl.read_parquet("df_old.parquet") # 0.5s pl.read_parquet("df_to_append.parquet") # 0.0s pl.read_parquet("result.parquet") # 3.6s ! [/code] [list] [*]Я попробовал это в своем офисе, медленно. А теперь дома, очень медленно. Так что я думаю, это не зависит от машины. [/list] Что я пробовал: [list] [*] количество строк выглядит корректным, как и ожидалось. [/list] [code]df_old # shape: (27_796_178, 13)
df_to_append # shape: (1_144_920, 13)
result # shape: (28_941_098, 13) [/code]
[*]Схемы для df_old и df_to_append идентичны, и они также соответствуют результату.
[/code] Несмотря на эти проверки, я по-прежнему сталкиваюсь с огромной задержкой при записи объединенного результата в Parquet. Я понятия не имею, что делать дальше. Будем очень признательны за любую помощь или идеи! Дополнительная информация: Python 3.13 с полярными версиями 1.12.0 Вот пример представления df_old: df_old:polars.DataFrame
Я пытаюсь погрузиться в большой паркетный файл с полярными. Это должно быть легко достичь в (1) памяти:
import os ; os.environ = '4'
import polars as pl
import time, random
import numpy as np
random.seed(42)
Обычно, когда дело доходит до операций с файлами паркета, пакет Parquet.net занимает меньше/равное время по сравнению с Python. Но мой первоначальный набор экспериментов не соответствует этому. Чтение 5 миллионов данных в Parquet Python занимает...
Как прочитать набор данных Parquet небольшого размера в фрейм данных Pandas в памяти без настройки инфраструктуры кластерных вычислений, такой как Hadoop или Spark? Это лишь умеренный объем данных, который я хотел бы прочитать в памяти с помощью...
У меня есть очень большое количество файлов данных Parquet, которые я могу легко объединить и агрегировать с помощью Polars, делая что-то вроде этого (обратите внимание на глобус в имени файла):
(
pl.scan_parquet('data/data-16828*.parquet')...