pao*_*one 6 apache-spark-sql azure-databricks
我使用下面的代码从 databricks 中的数据帧创建一个表并遇到错误。
df.write.saveAsTable("newtable")
Run Code Online (Sandbox Code Playgroud)
第一次工作正常,但如果我像下面这样重写,则可重复使用
df.write.mode(SaveMode.Overwrite).saveAsTable("newtable")
Run Code Online (Sandbox Code Playgroud)
我收到以下错误。
错误信息:
org.apache.spark.sql.AnalysisException: Can not create the managed table newtable. The associated location dbfs:/user/hive/warehouse/newtable already exists
Run Code Online (Sandbox Code Playgroud)
小智 5
SQL 配置“spark.sql.legacy.allowCreatingManagedTableUsingNonemptyLocation”已在版本 3.0.0 中删除。删除它是为了防止丢失非默认值的用户数据。
运行以下命令来修复问题:
dbutils.fs.rm("dbfs:/user/hive/warehouse/newtable/", true)
Run Code Online (Sandbox Code Playgroud)
或者
设置标志
spark.sql.legacy.allowCreatingManagedTableUsingNonemptyLocation = true
spark.conf.set("spark.sql.legacy.allowCreatingManagedTableUsingNonemptyLocation","true")