Apache spark Can';t使用;更新;在spark中写入流数据时处于outputMode()

Apache spark Can';t使用;更新;在spark中写入流数据时处于outputMode(),apache-spark,pyspark,databricks,delta,delta-lake,Apache Spark,Pyspark,Databricks,Delta,Delta Lake,我正在尝试以spark-to-delta格式写入流数据,但它似乎不允许我在outputMode()中使用update,下面是我的代码和错误消息: deltaStreamingQuery = (eventsDF .writeStream .format("delta") .option("checkpointLocation", checkpointPath) .outputMode("update") .queryName("stream_1p") .start(writ

我正在尝试以spark-to-delta格式写入流数据,但它似乎不允许我在outputMode()中使用update,下面是我的代码和错误消息:

deltaStreamingQuery = (eventsDF
  .writeStream
  .format("delta")
  .option("checkpointLocation", checkpointPath)
  .outputMode("update")
  .queryName("stream_1p")
  .start(writePath)
)

目前,Databricks Delta仅支持
接收器的
追加
完成
作为
输出模式
append
将向表中添加新行,
complete
将覆盖表,因此这可能就是您要合并更新的内容


官方文档在这里=>

感谢您的回答,但当我尝试使用complete时,它会给出错误:“当流数据帧/数据集上没有流聚合时,不支持完整输出模式您是否正在进行任何聚合?”?您需要执行完整模式的聚合。。。如果不执行任何聚合,请尝试附加模式这是元数据表流式处理作业,因此我只想用新记录替换旧记录,例如,如果不执行聚合,那么什么更新会很好,或者删除流式处理,然后使用delta lake更新表。我不太明白,我想保留一个流作业,因为每次在存储中覆盖相应的输入文件(例如s3)时,我都要替换整个表
AnalysisException: 'Data source com.databricks.sql.transaction.tahoe.sources.DeltaDataSource does not support Update output mode;'```