CSV-файлы не поддерживают Schema Evolution.Поэтому в основном вам нужно прочитать все данные в целевом пути, а затем добавить новый столбец в этом кадре данных со значением по умолчанию.
val oldDF = dfWithExistingData.withColumn("new_col", lit(null))
Затем вы можете объединить или объединить этот кадр данных сновый набор данных.
val targetData = oldDF.union(newDF)
Затем вы можете записать данные обратно на целевой путь в режиме перезаписи.
targetData
.repartition(1)
.write
.format("com.databricks.spark.csv")
.mode("overwrite")
.option("sep", "\t")
.option("header","true")
.save("folder")
Альтернатива : вы можете переключиться на другие форматы файлов, которые поддерживаютэволюция схемы, например: паркет, чтобы избежать выполнения вышеуказанного процесса.