Я пытаюсь читать файлы паркета в R, используя read_parquet и open_dataset. Ни один из них не очень эффективен. У меня 100 паркетных перегородок по 160МБ каждая. Общий набор данных составляет более 1 миллиарда строк и имеет около 15 столбцов (5 целых и 10 десятичных). Если я использую read_parquet()
, даже для одного файла, это займет более 1,5 минут и потребляет более 10 ГБ памяти, что означает, что для всех 100 частей мне потребуется более 1 ТБ памяти.
df <- open_dataset("myfolder/", partitioning = NULL)
df2 %>%
select(col1) %>%
collect() %>%
count()
Занимает около 6 минут только для подсчета, не говоря уже о преобразовании в фрейм данных, который sh не хватает памяти.
Ранее я обнаруживал похожие проблемы, здесь , здесь и здесь . Однако основным решением является обновление стрелки, где я уже использую 0.17.1.
Какие-либо решения?
ps. с помощью rjdb c те же данные можно прочитать менее чем за 20 минут, имея всего 20 ГБ памяти.