Итак.По сути, это моя проблема.
Я установил структурированные данные Spark SQL
val hiveQ = filteredDF.writeStream
.trigger(Trigger.ProcessingTime(5, TimeUnit.SECONDS))
.outputMode("append")
.format("csv")
.option("header", "false")
.option(
"path",
conf.getString("dest.hdfs.prefix") + msgType + "/" + tableName)
.option("checkpointLocation",
conf.getString("dest.hdfs.temp.prefix") + tableName)
.start()
Я пытаюсь как-то добиться, чтобы файл, написанный на hdf, был "атомарным"Я имею в виду, поскольку на сервере есть другая работа, которая читает из того же каталога и перемещает файлы из этой папки в другую, я сталкиваюсь с ошибками, потому что Spark добавляет данные в те же файлы.
Есть ли способ иметь что-то вроде файлов .tmp, и только когда он завершает их, пусть меняют расширения на .csv?
Честно говоря, я понятия не имею, как перемещать, может быть раздел как-тоПомоги мне?добавить как какой-то столбец currentTimestamp и использовать его в качестве раздела?