首先,我在Amazon EMR上使用Spark 1.5.2,並將Amazon RDS用於我的postgres數據庫。Spark在寫入時是否可以使用SQL數據庫?
我目前正致力於讓Spark將其結果寫入postgres數據庫,我通過使用Spark的jdbc API來完成這項工作。雖然它正常工作,但我擔心的是,如果我在Spark運行時嘗試使用psql連接到數據庫,然後嘗試從Spark寫入的表中讀取數據,它會告訴我沒有任何已寫入的行。這一直持續到Spark完成,然後突然所有的行都出現在db中。
這讓我很擔心,因爲最終設置應該是定期運行Spark腳本,並將更多數據寫入數據庫,而網站應該使用該數據庫。這是否意味着在Spark運行時我無法查詢數據庫?
你會猜這是什麼問題?我認爲這可能是一個更大的實例用於數據庫的問題(我最初使用最小和最便宜的 - db.t2.micro),但我得到了與db.m4.xlarge類實例相同的問題(儘管時間完成步驟減半)。
學習基礎的時間:[事務隔離](http://www.postgresql.org/docs/9.1/static/transaction-iso.html) –
Spark可能使用一個事務來插入所有數據。問題不在於Spark在寫入時無法讀取任何*,而是因爲當您讀取時,尚未提交任何數據。 – deceze
@deceze實際上,每個分區都在其自己的事務中單獨保存。 – zero323