У меня есть данные OR C на HDFS (без секций), ~ 8 миллиардов строк, размер 250 ГБ. Я читаю данные в DF, записываю DF без преобразований с помощью partitionBy ex: df.write.mode ("overwrite"). PartitionBy ("some_column"). Или c ("hdfs path")
Поскольку я следил за статусом задания в пользовательском интерфейсе искры - задание и этап завершаются за 20 минут. Но вкладка «SQL» в пользовательском интерфейсе Spark показывает 40 минут.
После запуска задания в режиме отладки и просмотра журнала искры я понял, что задачи, записывающие в «_ Contemporary», выполняются за 20 минут.
После этого слияние «_temporary» с фактическим путем вывода занимает 20 минут.
Итак, мой вопрос: выполняет ли процесс драйвера последовательное слияние данных из «_temporary» с путем вывода? Или это выполняется задачами исполнителя?
Могу ли я что-нибудь сделать, чтобы повысить производительность?