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

How to have a spark dataframe be constantly updated as writes occur in the db backend?

基本上,我将 Spark 置于数据库前,我想知道如何使用来自后端的新数据不断更新数据框。

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

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

DF就是RDD+Schema+很多其他的功能。从基本的 spark 设计来看,RDD 是不可变的。因此,您不能 在 DF 实现后更新它。 在您的情况下,您可以像下面这样混合流媒体 + SQL:

  1. 在您的数据库中,将数据写入队列以及写入表
  2. 使用 spark 队列流从队列中消费并创建 Dstreams(RDD 每 x 秒)
  3. 对于每个传入的RDD,加入现有的DF并创建一个新的DF