如何解决apache spark sql table overwrite问题
我正在使用以下代码从数据块中的数据帧创建表,并遇到错误。
df.write.saveAsTable("newtable")
这在第一次时就可以正常工作,但是如果我要像下面这样重写,则可以重复使用
df.write.mode(SaveMode.Overwrite).saveAsTable("newtable")
我收到以下错误消息。
错误消息:
org.apache.spark.sql.AnalysisException: Can not create the managed table newtable. The associated location dbfs:/user/hive/warehouse/newtable already exists
解决方法
SQL 配置 'spark.sql.legacy.allowCreatingManagedTableUsingNonemptyLocation' 在 3.0.0 版本中被移除。删除它是为了防止丢失非默认值的用户数据。
,运行以下命令来解决问题:
dbutils.fs.rm("dbfs:/user/hive/warehouse/newtable/",true)
或
设置标志
spark.sql.legacy.allowCreatingManagedTableUsingNonemptyLocation = true
spark.conf.set("spark.sql.legacy.allowCreatingManagedTableUsingNonemptyLocation","true")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。