【问题标题】:Databricks drop a delta table?Databricks 删除增量表?
【发布时间】:2020-03-18 07:39:52
【问题描述】:

如何在 Databricks 中删除 Delta 表?我在文档中找不到任何信息......也许唯一的解决方案是使用魔法命令或 dbutils 删除文件夹“delta”中的文件:

%fs rm -r delta/mytable?

编辑:

为了澄清,我在这里举了一个非常基本的例子。

例子:

#create dataframe...
from pyspark.sql.types import *

cSchema = StructType([StructField("items", StringType())\
                      ,StructField("number", IntegerType())])

test_list = [['furniture', 1], ['games', 3]]

df = spark.createDataFrame(test_list,schema=cSchema)

并将其保存在 Delta 表中

df.write.format("delta").mode("overwrite").save("/delta/test_table")

然后,如果我尝试删除它.. 使用 drop table 或类似操作是不可能的

%SQL
DROP TABLE 'delta.test_table'

其他选项都没有,例如 drop table 'delta/test_table' 等...

【问题讨论】:

    标签: databricks delta-lake


    【解决方案1】:

    如果您想完全删除表,那么可以使用 dbutils 命令:

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

    据我了解,您保存的增量表位于 blob 存储中。删除连接的数据库表会将其从数据库中删除,但不会从存储中删除。

    【讨论】:

      【解决方案2】:

      你可以使用 sql 命令来做到这一点。

      %sql
      DROP TABLE IF EXISTS <database>.<table>
      

      【讨论】:

      • 感谢您的回答,但这在 Delta 表中不起作用。我已经试过了,它说该表不存在。
      • 那么可能就是这样。该表不存在。该表只是对 DBFS 上实际物理文件的抽象。你想放下桌子吗?或者你想清理文件? drop 命令并没有真正清理 dbfs 位置。
      • 嗨!再次感谢...我认为该解决方案仅适用于数据块中的“普通”表,而不是 Delta 表。我更改了我的问题并添加了一个示例。
      • 嗨!最后我明白我做错了什么......在创建增量文件后,它需要创建 SQL 表:spark.sql("CREATE TABLE test_table USING DELTA LOCATION '/delta/test_table/'")。有了这个,你的答案是正确的!谢谢!
      【解决方案3】:

      基本上在数据块中,表有 2 种类型 - 托管和非托管

      1.Managed - Spark 管理数据和元数据的表,Databricks 将元数据和数据存储在您帐户中的 DBFS 中。

      2.Unmanaged - databricks 仅管理元数据,但数据不由 databricks 管理。

      因此,如果您为托管表编写删除查询,它将删除该表并同时删除数据,但在非托管表的情况下,如果您编写删除查询,它只会删除符号链接指针(Meta- table 的信息) 到 table 位置但你的数据没有被删除,所以你需要在外部使用 rm 命令删除数据。

      更多信息: https://docs.databricks.com/data/tables.html

      【讨论】:

        【解决方案4】:

        从 GUI 中删除, 数据-> 数据库表-> 选择您的数据库-> 选择表旁边的下拉菜单并删除。 我不知道这种类型的删除的后果,所以告诫购买者

        【讨论】:

          猜你喜欢
          • 2022-10-25
          • 1970-01-01
          • 2021-03-18
          • 2022-10-05
          • 2019-02-09
          • 2021-10-15
          • 2022-11-24
          • 2023-01-18
          • 1970-01-01
          相关资源
          最近更新 更多