yyu*_*nkm 6 apache-spark spark-streaming spark3
在我的 Spark 工作中,我尝试覆盖结构化流的每个微批次中的一个表
batchDF.write.mode(SaveMode.Overwrite).saveAsTable("mytable")
Run Code Online (Sandbox Code Playgroud)
它产生了以下错误。
Can not create the managed table('`mytable`'). The associated location('file:/home/ec2-user/environment/spark/spark-local/spark-warehouse/mytable') already exists.;
Run Code Online (Sandbox Code Playgroud)
我知道在 Spark 2.xx 中,解决这个问题的方法是添加以下选项。
spark.conf.set("spark.sql.legacy.allowCreatingManagedTableUsingNonemptyLocation","true")
Run Code Online (Sandbox Code Playgroud)
它在 Spark 2.xx 中运行良好。不过,这个选项在 Spark 3.0.0 中被删除了。那么,在Spark 3.0.0中我们应该如何解决这个问题呢?
谢谢!
小智 0
看起来您在同一进程中运行测试数据生成和实际测试 - 您是否可以将它们替换为createOrReplaceTempView以将它们保存到 Spark 的内存目录中,而不是保存到 Hive 目录中?
类似于:batchDF.createOrReplaceTempView("mytable")
| 归档时间: |
|
| 查看次数: |
7850 次 |
| 最近记录: |