首页 > 解决方案 > 如何删除非托管三角洲湖表

问题描述

我正在尝试删除使用 writestream 创建的 delta 湖表。我尝试了删除表,但失败了

#table created as
df.writestream().outputmode("append").format("delta").start("/mnt/mytable")

#attempt to drop table
spark.sql("drop table '/mnt/mytable'")

标签: databricksazure-databricksdelta-lake

解决方案


DROP TABLE IF EXISTS <unmanaged-table>    // deletes the metadata
dbutils.fs.rm("<your-s3-path>", true)   // deletes the data

DROP TABLE <managed-table> // deletes the metadata and the data

您需要指定数据以删除非托管表中的数据,因为使用非托管表;Spark SQL 只管理元数据,您控制数据位置。使用托管表,Spark SQL 管理元数据和数据,数据存储在您帐户的 Databricks 文件系统 (DBFS) 中。因此,要删除非托管表的数据,您需要指定数据的路径。


推荐阅读