我有一个从s3到三角洲的流作业,我的输入路径目录包含一个“ data.csv”文件(我使用*来检测正确的csv文件)和一些其他数据文件。 s3中的“ data.csv”文件每天都会被替换,尽管在大多数情况下,新的“ data.csv”将包含完全相同的内容,但是偶尔它会发生变化,我希望我的流媒体和写作工作能够抓住这一点更改。例如,我的“ data.csv”现在可能看起来像这样:
|id|location|status|
|1 | A |ON |
|2 | A |OFF |
|3 | B |ON |
随着时间的流逝,该表可能会发生如下变化:
|id|location|status|
|1 | A |OFF |
|2 | A |OFF |
|3 | A |ON |
我希望我的增量表得到相应的更新,这是我现在正在使用的代码,在这种情况下,“ append” outputMode()不起作用,并且我认为我不能使用“ complete”因为我不想要聚合。有人可以告诉我是否有办法实现这一目标?
inputPath = "/file_path/*data.csv"
eventsDF = (
spark
.readStream
.schema(schema)
.option("header", "true")
.option("maxFilesPerTrigger", 1)
.csv(inputPath)
)
writePath = "write_path"
checkpointPath = writePath + "/_checkpoint"
deltaStreamingQuery = (eventsDF
.writeStream
.format("delta")
.option("checkpointLocation", checkpointPath)
.outputMode("append")
.queryName("stream_1")
.start(writePath)
)