在我的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"(