未绑定表如何在spark结构化流中工作

时间:2017-11-08 09:08:00

标签: apache-spark spark-streaming

以字数为例,当应用程序启动并长时间运行,并收到一个单词"Spark",然后在结果表中有一行(Spark,1),

应用程序运行1天甚至一周后,应用程序再次收到"Spark",因此结果表应该有一行(spark,2)。

我只是使用上面的场景来提出问题:无界表如何保持它接收的数据的状态,因为在应用程序运行很长时间后状态可能会非常巨大。

另外,当使用"Complete"输出模式时,如果结果表非常大,那么将结果表中的所有数据写出来沉没将是非常昂贵的

1 个答案:

答案 0 :(得分:1)

为了避免内存中的大量数据,Spark结构化流媒体使用水印。主要思想是仅在内存中存储特定时间窗内的数据。此窗口外的所有数据都存储在文件系统中。您可以阅读有关水印herehere

的信息