我想一個PySpark數據幀保存爲表創建表:插入到表或從一個命令
myDf.write.saveAsTable("myDf")
但是,如果我跑了兩次代碼我得到
u'Table `myDf` already exists.;'
如果我保存它是這樣的:
myDf.write.inserInto("myDf")
我會得到這個錯誤:u'Table not found: myDf;'
那麼我怎樣才能保存一個表,以便不管我運行多少次代碼,我都不會收到錯誤。
我想一個PySpark數據幀保存爲表創建表:插入到表或從一個命令
myDf.write.saveAsTable("myDf")
但是,如果我跑了兩次代碼我得到
u'Table `myDf` already exists.;'
如果我保存它是這樣的:
myDf.write.inserInto("myDf")
我會得到這個錯誤:u'Table not found: myDf;'
那麼我怎樣才能保存一個表,以便不管我運行多少次代碼,我都不會收到錯誤。
爲什麼你不能把if condition
檢查表是否存在?
如果不是,根據您的使用情況,您可能可以使用registerDataFrameAsTable(df, tableName)
將給定的DataFrame註冊爲目錄中的臨時表,該臨時表僅存在於SQLContext實例的生命週期中。
有關更多詳細信息,請參閱documentation。 有了這個,你應該可以運行你的代碼多次,而不會出錯。
myDf.write.mode("overwrite").saveAsTable("myDf")
看來顯然是「哦,我想我知道它是如此簡單」的情景(發生在我身上所有的時間),但這裏是萬一ref你需要多一點。
雖然這可能有效,但如果你解釋了爲什麼這會起作用,那會更好。 –
添加了一個鏈接作爲參考。 – ShuaiYuan