2016-07-07 66 views
0

我想一個PySpark數據幀保存爲表創建表:插入到表或從一個命令

myDf.write.saveAsTable("myDf") 

但是,如果我跑了兩次代碼我得到

u'Table `myDf` already exists.;' 

如果我保存它是這樣的:

myDf.write.inserInto("myDf") 

我會得到這個錯誤:u'Table not found: myDf;'

那麼我怎樣才能保存一個表,以便不管我運行多少次代碼,我都不會收到錯誤。

回答

0

爲什麼你不能把if condition檢查表是否存在?

如果不是,根據您的使用情況,您可能可以使用registerDataFrameAsTable(df, tableName)將給定的DataFrame註冊爲目錄中的臨時表,該臨時表僅存在於SQLContext實例的生命週期中。

有關更多詳細信息,請參閱documentation。 有了這個,你應該可以運行你的代碼多次,而不會出錯。

0
myDf.write.mode("overwrite").saveAsTable("myDf") 

看來顯然是「哦,我想我知道它是如此簡單」的情景(發生在我身上所有的時間),但這裏是萬一ref你需要多一點。

+1

雖然這可能有效,但如果你解釋了爲什麼這會起作用,那會更好。 –

+0

添加了一個鏈接作爲參考。 – ShuaiYuan