【发布时间】:2018-11-08 13:03:16
【问题描述】:
Spark Streaming 中 Append 模式和 Update 模式的真正区别是什么?
根据文档:
附加模式(默认) - 这是默认模式,其中只有新的 自上次触发后添加到结果表的行将是 输出到接收器。这仅适用于那些查询 添加到结果表的行永远不会改变。因此,这 模式保证每行只输出一次(假设 容错接收器)。例如,仅使用 select、where、 map、flatMap、filter、join等将支持Append模式。
和
更新模式 - (自 Spark 2.1.1 起可用)仅 自上次触发后更新的结果表将是 输出到接收器。更多信息将在未来添加 发布。
我对追加模式的困惑:它表示自上次触发后添加到结果表的新行将输出到接收器的位置“仅”。所以,例如,假设我们有三行
r1, r2, r3 到达t1, t2, t3 t1<t2<t3
现在说在 t4 行 r2 被覆盖,如果是这样,当我们在附加模式下操作时,我们永远不会在接收器中看到它?是不是像丢了一个字一样?
我对更新模式的困惑:它说“仅”结果表中自上次触发后更新的行将输出到接收器。这是否意味着行应该已经存在并且只有在现有行被更新时才会输出到接收器?如果在我们处于此更新模式时没有现有行并且有新行出现,会发生什么?
【问题讨论】:
标签: apache-spark spark-streaming