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

数据块-不为空,但它不是增量表

庞乐池
2023-03-14

我在Databricks上运行查询:

DROP TABLE IF EXISTS dublicates_hotels;
CREATE TABLE IF NOT EXISTS dublicates_hotels
...

我正在尝试了解为什么我会收到以下错误:

SQL语句中的错误:AnalysisException:无法创建表(' < code>default)。< code>dublicates_hotels ')。关联的位置(' dbfs:/user/hive/warehouse/du blicates _ hotels ')不为空,但它不是增量表

我已经找到了一种方法来解决它(通过手动删除它):

dbutils.fs.rm('.../dublicates_hotels',recurse=True)

但我不明白它为什么还留着表?尽管我创建了一个新的集群(终止了前一个集群),并且在运行这个查询时附加了一个新的集群。

有人能帮我理解吗?

共有3个答案

谷善
2023-03-14

如果使用指定了 LOCATION 创建的表 - 这意味着该表是 EXTERNAL,因此当您删除它时 - 仅删除该表的配置单元元数据时,目录内容将保持原样。如果指定相同的位置,则可以通过 CREATE TABLE 还原表(增量将表结构与其数据一起保存在目录中)。

如果在创建表时没有指定位置——这是一个托管表,DROP将破坏元数据和目录内容

谈秦斩
2023-03-14

放置表

谷隐水
2023-03-14

我也遇到了类似的问题,然后尝试了命令行CREATE OR REPLACE TABLE,它解决了我的问题。

 类似资料:
  • Sql Delta表和Database ricks Delta表有区别吗?看起来SQL我们在概念的基础上使用这个名字。存储Base表差异的表是Delta。对于数据库是一样的吗?

  • 如何使用数据砖增量从其他表中更新表中的多个记录。 我想达到这样的目标: 它失败并出现错误:不匹配的输入“发件人”期望

  • 我正在Windows上设置Maven,我认为所有的设置都是正确的,但当我运行时,我仍然得到错误“JAVA_HOME环境变量没有正确定义” null null C:\ProgramData\Oracle\Java\JavaPath C:\Apache-Maven-3.6.3\bin 似乎无法弄清楚这些环境变量有什么问题,以至于Maven会给我这个错误。任何帮助都将不胜感激!

  • 我有一个类型为的变量 在一个函数中,我检查它是否为,并希望以后使用它,而不必每次调用都必须。例如,在Kotlin中,IDE识别这样的检查,并在之后断言变量不能为。在C#中有这样的方法吗? 编辑:

  • 题目描述谁知道为什么没数据,但是还是返回获取成功。而空数组不是false吗? 题目来源及自己的思路谁知道为什么没数据,但是还是返回获取成功。而空数组不是false吗? 相关代码 粘贴代码文本(请勿用截图)谁知道为什么没数据,但是还是返回获取成功。而空数组不是false吗? 你期待的结果是什么?实际看到的错误信息又是什么?谁知道为什么没数据,但是还是返回获取成功。而空数组不是false吗?

  • 代码 产出(如预期) 1.post increment运算符()在表中具有最高的优先级。因此它肯定会在赋值运算符()之前执行。根据post增量规则,变量的值只有在执行该语句之后才会增加。 参见有rvalue 3,而不是变量本身,对吗?但是如果它带来了一个具有lvalue的变量,那么5将插入其中,在语句结束后,它的值将是6。这有什么问题,为什么做不到?