【发布时间】:2018-12-06 09:37:22
【问题描述】:
我正在使用水印加入两个流,如下所示:
val order_wm = order_details.withWatermark("tstamp_trans", "20 seconds")
val invoice_wm = invoice_details.withWatermark("tstamp_trans", "20 seconds")
val join_df = order_wm
.join(invoice_wm, order_wm.col("s_order_id") === invoice_wm.col("order_id"))
我对上述代码的理解,它将使每个流保持 20 秒。之后,但是,当我现在提供一个流,20 秒后提供另一个流时,两者也都加入了。似乎即使在水印完成后 Spark 仍将数据保存在内存中。我什至在 45 秒后尝试过,结果也加入了。
这让我对水印感到困惑。
【问题讨论】:
标签: scala apache-spark spark-structured-streaming