问题描述
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")