Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何解决Spark 3.0中的以下问题?无法创建托管表。关联的位置已存在。;_Apache Spark_Spark Streaming_Spark3 - Fatal编程技术网

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

Apache spark 如何解决Spark 3.0中的以下问题?无法创建托管表。关联的位置已存在。;,apache-spark,spark-streaming,spark3,Apache Spark,Spark Streaming,Spark3,在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-ware

在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中解决这个问题


谢谢

请尝试使用“覆盖”模式明确指定要保存的路径。谢谢John,我可以通过在Spark 3.0中添加路径来确认它是否有效。我添加路径的方式如下所示
batchDF.write.mode(SaveMode.Overwrite).option(“path”,“/home/ec2 user/environment/spark/spark local/tmp”).saveAsTable(“mytable”)
。我正在以独立模式部署。如果我想将它部署到hadoop集群中,您是否对正确的路径有一些评论?谢谢“spark.sql.legacy.allowCreatingManagedTableUsingNonemptyLocation”、“true”是否也会删除其余文件?否则,您可能会混合使用旧文件和新文件。我可以确认这是否有效:我正在集成测试中加载json格式的本地配置单元表,并已指定默认使用的同一目录(在我的ide中):现在,如果文件已经存在,则不会失败。