2016-07-07 67 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