2015-06-14 63 views
0

基本上我有Spark坐在數據庫前面,我想知道如何讓數據幀不斷更新,並使用來自後端的新數據。如何在數據庫後端寫入時不斷更新火花數據幀?

我能想到的解決這個問題的方法是每隔幾分鐘對數據庫運行一次查詢,但顯然效率低下,並且仍然會導致更新之間的時間數據過時。

我不是100%確定,如果我正在使用的數據庫有這個限制,但我認爲只添加行,沒有對現有行進行修改。

回答

1

DF是RDD + Schema +許多其他功能。從基本的火花設計來看,RDD是不變的。因此,你不能更新DF物化後。 在你的情況,你也許可以混個流+ SQL象下面這樣:

  1. 在你的數據庫,將數據寫入到隊列與表寫沿
  2. 使用火花隊列流從隊列中消費和創造Dstreams(每x秒RDDs)
  3. 對於每個輸入的RDD,加入現有的DF並創建一個新的DF