如何在数据库后端发生写入时不断更新 Spark 数据帧



基本上,我让Spark坐在数据库前面,我想知道如何使用来自后端的新数据不断更新数据帧。

我能想到的解决此问题的简单方法是每隔几分钟对数据库运行一次查询,但这显然效率低下,并且仍然会导致更新之间的数据过时。

我不是 100% 确定我正在使用的数据库是否有此限制,但我认为只添加了行,没有对现有行进行修改。

DF

是RDD+Schema+许多其他功能。从基本的火花设计来看,RDD是不可变的。因此,您无法在 DF 具体化后对其进行更新。在您的情况下,您可以混合流式处理 + SQL,如下所示:

  1. 在数据库中,将数据写入队列以及表中的写入
  2. 使用 Spark 队列流从队列中使用并创建 D流(RDD 每 x 秒)
  3. 对于每个传入的 RDD,与现有 DF 联接并创建新的 DF

相关内容

  • 没有找到相关文章

最新更新