У меня есть искровое задание, которое читается в меньшем файле паркета и вносит некоторые изменения в имена столбцов, затем перераспределяет его в файл немного большего размера и сортирует по разделам.
В конце концов, запись в 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 ГБ +использование физической памяти