在 spark 中,假設資料框 df 有 100 條記錄,而 df.saveAsTable("sometablename") 假設資料框已保存 50 條記錄,同時保存其余 50 條記錄,如果發生某些錯誤,它會撤銷已保存的 50 條記錄嗎?
在 sql server 的情況下,我們有提交和回滾 tran。我們在火花中有這樣的事情嗎?請幫忙
uj5u.com熱心網友回復:
Spark 不是原子的,但它確實嘗試做一些好事。
我建議您實施與 spark 和 hadoop 類似的策略。
創建臨時表 df.saveAsTable("sometablename_temp")
寫入所有資料后,更改名稱。
spark.sql("ALTER TABLE sometablename_temp RENAME TO sometablename;")
這降低了操作的風險。如果在寫入臨時表時發生故障,也沒有壞處。此“提交”處于驅動程式級別,這是處理執行程式失敗的正確級別。
uj5u.com熱心網友回復:
我認為最好將您的表創建為磁區表,以防萬一洗掉該磁區。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/375346.html
下一篇:Pyspark-Sql回圈優化
