Добавление к существующему файлу того, что сложно сделать для распределенного многопоточного приложения, оно превратит распараллеливание в последовательную задачу. Обычно это достигается путем сохранения для каждого потока или задачи в Spark одного файла по указанному пути, и этот путь будет папкой, содержащей все файлы. Чтобы прочитать их, вы можете прочитать всю папку.
Если ваши данные не большие, и вам действительно нужен один файл, попробуйте с помощью метода repartition
установить 1, это сделает единственную задачу для записи новые данные, но он никогда не добавит данные в предыдущие файлы.
Вы должны быть осторожны, но вы можете сделать что-то вроде этого:
df.union(spark.read(PATH+"/trial.csv"))
.coalesce(1)
.write
.format("csv")
.mode("append")
.save(PATH+"/trial_auxiliar.csv")
Затем переместите его в предыдущую папку , с искрой или командой перемещения Had oop. Никогда не выполняйте запись и чтение в одном и том же задании в одной и той же папке и помните, что это не гарантирует порядок данных.