0

在这篇(https://dzone.com/articles/what-are-spark-checkpoints-on-dataframes)文章中,它说检查点用于“在我做其他事情之前冻结数据帧的内容”。

然而,在这篇(http://blog.madhukaraphatak.com/introduction-to-spark-structured-streaming-part-7/)文章中,它说检查点用于从故障中恢复。从这里我收集到,如果 spark 正在处理一个 kafka 主题并且 spark 崩溃,在它重新启动后,它将从它上次检查点的偏移量开始处理。这个说法正确吗?

spark中有两种不同的检查点概念吗?因为我无法调和2。

4

1 回答 1

1

更简单的答案是,如果您只是从 kafka 消费,将信息转换并加载到其他系统,则不需要检查点,kafka 偏移提交就足够了。

但是,如果您正在进行窗口化并计算运行聚合(例如,过去 5 小时的运行平均值),则时间窗口(在本例中为过去 5 小时)的(先前提取的)数据存储在检查点中。这是什么意思

在我做其他事情之前冻结数据框的内容

在没有检查点的情况下,当重新启动 spark 应用程序时,正在运行的聚合将重置(因为只有在上次提交的偏移量之后收到的数据才会从 kafka 消耗)。

基于来自的回答:在火花流中是否需要检查点

于 2019-03-12T13:13:36.727 回答