высокое потребление памяти при преобразовании стрелки в фрейм данных в R - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь читать файлы паркета в 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 ГБ памяти.

...