所以。基本上这是我的问题。
我已经设置了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()
我试图以某种方式实现的是,用hdfs编写的文件应该是“原子的”,我的意思是,由于服务器上还有另一项作业可以从同一目录读取并将文件从该文件夹移动到另一个文件夹,所以我遇到错误因为Spark会将数据附加到相同的文件。
是否有一种方法来保存.tmp文件,并在将其最终确定后,将扩展名更改为.csv?
老实说,我不知道如何移动,可以分区吗?以某种方式帮助我吗?像某些currentTimestamp列一样添加并将其用作分区?