批次之间持久存在的内存缓存激发了结构化流

时间:2019-03-10 21:14:23

标签: scala caching guava spark-structured-streaming

在Scala应用程序中具有内存LRU高速缓存的正确方法是什么,该应用程序运行在火花结构化流上并在批之间保持不变。

我尝试使用Guava缓存,但是我认为因为即使我将其用作单例它也无法序列化,所以每个微批处理都会实例化一个新的缓存。

为了处理事件,我需要在外部数据源中查找一些元数据,因此,我想避免每次通话都通过网络,而是在本地缓存一定时间。

1 个答案:

答案 0 :(得分:0)

您可以尝试在mapGroupsWithState或flatMapGroupsWithState内部编写自己的逻辑

这是一个有状态存储,可以保存查找的计算值

查看此链接: https://databricks.com/blog/2017/10/17/arbitrary-stateful-processing-in-apache-sparks-structured-streaming.html