当前位置: 首页 > 知识库问答 >
问题:

Azure Databricks -无法创建托管表,关联的位置已经存在

太叔睿
2023-03-14

我在Azure Databricks中遇到了以下问题。有时,当我试图将数据帧保存为托管表时:

SomeData_df.write.mode('overwrite').saveAsTable("SomeData")

我收到以下错误:

无法创建托管表(“< code>SomeData”)。关联的位置(' dbfs:/user/hive/warehouse/some data ')已经存在。;"

我过去通过运行%fs rm命令来删除该位置来解决此问题,但现在我使用的是由其他用户管理的群集,我无法再在该位置上运行rm。

目前,我能想到的唯一解决方法是使用不同的表名。

使事情更加奇特的是桌子不存在的事实。当我跑步时:

%sql
SELECT * FROM SomeData

我收到错误:

SQL 语句中的错误: 分析异常: 找不到表或视图: 某些数据;

我该怎么修理它?

共有3个答案

池兴邦
2023-03-14

此处推荐的所有其他解决方案要么是变通方法,要么不起作用。该模式被指定为覆盖,这意味着您不需要删除或删除数据库或使用旧选项。

相反,在写入表时,请尝试在选项中指定完全限定路径:

df.write \
    .option("path", "hdfs://cluster_name/path/to/my_db") \
    .mode("overwrite") \
    .saveAsTable("my_db.my_table")
高功
2023-03-14

这通常发生在集群在写入表时关闭时。Databricks文档中推荐的解决方案:

这个标志删除_STARTED目录,进程恢复到原来的状态,比如可以在笔记本里设置

%py
spark.conf.set("spark.sql.legacy.allowCreatingManagedTableUsingNonemptyLocation","true")
邵伟泽
2023-03-14

似乎还有其他一些有同样的问题。

临时解决方法是使用

dbutils.fs.rm("dbfs:/user/hive/warehouse/SomeData/", true)

在重新创建表之前删除它。

 类似资料:
  • 根本原因是 我的观察是:在新的部署下,整个系统工作得很好。一旦数据库长时间处于理想状态,问题就会在6-8小时后出现

  • 我有一个Orders表,其中的< code>resellerID列是一个可空整数。在大多数记录中,< code>resellerID为NULL,但有时它包含一个与Resellers表相关联的整数,该表包含< code>resellerID和< code>resellerName列。 当我尝试添加两个之间的关系时,我收到以下错误: 问题是<code>Orders的可为Null性质吗。经销商ID列?这

  • 嗨,我是新来的拉威尔,在理解如何建立人际关系方面有点挣扎。我试图在laravel中创建一个基本的restful api,有3个模型 表迁移: 书籍是主要的表格,作者与书籍有一对多的关系。类别与书籍有多对多的关系,因为一本书可以在多个类别中。 books表有一个author_id字段将其链接到author表。还有一个名为category_books的透视表,它包含category_id和book_i

  • 问题内容: 我正在尝试使用以下方法测试PHP是否可从Firebase托管工作: (index.html) (welcome.php) 每次尝试此操作时,浏览器都会继续尝试打开PHP文件,而不是对其进行处理。Firebase服务器托管上是否启用了简单的PHP以处理这种简单形式?如果我能以这种方式工作,那么我将正确构建表格,包括验证等。 谢谢, 问题答案: 从Firebase托管站点(重点是我): 我

  • 问题内容: 我正在处理一个请求,其中我必须创建一个表来插入一些数据。因此,显然我将首先拥有一个删除表st。在创建圣之前 但是,当我第一次运行此程序(可以创建表之前)时,它将弹出一个错误,提示未创建表,然后从此处创建表和goe子。因此,每当有人第一次运行我的代码时,它将在放置表st上弹出此错误。有谁有更好的主意吗? 诸如“如果表存在则删除其他创建表”之类的东西, 我不确定我们如何在sql中做到这一点

  • 这个问题是由打字错误或无法再复制的问题引起的。虽然类似的问题可能在这里是主题,但这个问题的解决方式不太可能对未来的读者有所帮助。 Eclipse 版本 :eclipse-jee-oxygen-3a-win32-x86_64 java : jdk1.7.0_79 系统信息 : Eclipse错误: eclipse配置设置文件: -启动插件/org.eclipse.equinox.launcher_1