如何在Spark 3.0中解决以下问题?无法创建托管表.关联的位置已存在



在我的spark工作中,我试图覆盖结构化流的每个微批次中的一个表

batchDF.write.mode(SaveMode.Overwrite).saveAsTable("mytable")

它生成了以下错误。

Can not create the managed table('`mytable`'). The associated location('file:/home/ec2-user/environment/spark/spark-local/spark-warehouse/mytable') already exists.;

我在Spark 2.xx中就知道,解决这个问题的方法是添加以下选项。

spark.conf.set("spark.sql.legacy.allowCreatingManagedTableUsingNonemptyLocation","true")

它在spark 2.xx中运行良好。但是,该选项在spark 3.0.0中被删除。那么,我们应该如何在Spark 3.0.0中解决这个问题呢?

谢谢!

看起来您的测试数据生成和实际测试是在同一个过程中运行的-您可以用createOrReplaceTempView替换它们,将它们保存到Spark的内存目录中,而不是Hive目录中吗?

类似于:batchDF.createOrReplaceTempView("mytable"(

相关内容

  • 没有找到相关文章

最新更新