2015-06-14 43 views
0

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

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

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

回答

1

DF是RDD + Schema +许多其他功能。从基本的火花设计来看,RDD是不变的。因此,你不能更新DF物化后。 在你的情况,你也许可以混个流+ SQL象下面这样:

  1. 在你的数据库,将数据写入到队列与表写沿
  2. 使用火花队列流从队列中消费和创造Dstreams(每x秒RDDs)
  3. 对于每个输入的RDD,加入现有的DF并创建一个新的DF