У меня есть несколько заданий, которые я хочу выполнить параллельно, чтобы добавить ежедневные данные в один и тот же путь, используя разделение.
например.
dataFrame.write().
partitionBy("eventDate", "category")
.mode(Append)
.parquet("s3://bucket/save/path");
Работа 1 - категория = "billing_events" Job 2 - category = "click_events"
Оба этих задания будут обрезать любые существующие разделы, которые существуют в ведро s3 до выполнения, а затем сохранить полученные паркетные файлы в соответствующие разделы.
то есть.
задание 1 → s3://bucket/save/path/eventDate = 20160101/channel = billing_events
задание 2 → s3://bucket/save/path/eventDate = 20160101/channel = click_events
Проблема im сталкивается с временными файлами, которые создаются во время выполнения задания с помощью искры. Он сохраняет файлы разработки на базовый путь
s3://ведро/сохранить/путь/_temporary/...
поэтому оба задания заканчиваются совместным использованием одной и той же папки temp и создают конфликт, который, как заметил я, может вызвать одно задание для удаления временных файлов, а другое задание не работает с 404 из s3, поскольку ожидаемый файл temp не существует.
Кто-нибудь столкнулся с этой проблемой и придумал стратегию параллельного выполнения заданий на одном базовом пути?
im с использованием искры 1.6.0 на данный момент