Spark потребовалось 20 ГБ памяти для записи 140 МБ файла Parquet - PullRequest
0 голосов
/ 11 октября 2018

У меня есть искровое задание, которое читается в меньшем файле паркета и вносит некоторые изменения в имена столбцов, затем перераспределяет его в файл немного большего размера и сортирует по разделам.

В конце концов, запись в HDFS в формате паркета.

Но на основе журнала контейнера YARN:

2018-10-10 20: 51: 19,397 INFO org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl: использование памятиProcessTree 13331 для контейнера с идентификатором контейнера: 26,9 ГБ 35,5 ГБ используемой физической памяти;35,0 ГБ из 74,5 ГБ используемой виртуальной памяти

Если размер файла составляет всего 145 МБ

Вот код:

df.repartition(32, columns)
            .sortWithinPartitions(columns)
            .write().parquet(PATH)

каждая задача этого задания занимает 25 ГБ +использование физической памяти

...