如何在Databricks中删除增量表?我在文档中找不到任何信息...也许唯一的解决方案是使用魔术命令或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")
然后,如果我尝试将其删除..用删除表或类似操作是不可能的
%SQL
DROP TABLE 'delta.test_table'
删除表'delta / test_table'等其他选项都没有,等等...
答案 0 :(得分:1)
您可以使用sql命令来做到这一点。
%sql
DROP TABLE IF EXISTS <database>.<table>
答案 1 :(得分:1)
如果要完全删除表,则可以使用dbutils命令:
dbutils.fs.rm('/delta/test_table',recurse=True)
据我了解,您保存的增量表位于Blob存储区中。删除连接的数据库表会将其从数据库中删除,但不会从存储中删除。
答案 2 :(得分:1)
基本上在数据砖中,表有2种类型-托管和非托管
1.Managed-托管表,Spark负责管理数据和元数据,Databricks将元数据和数据存储在您帐户的DBFS中。
2。非托管-数据砖仅管理元数据,但数据不由数据砖管理。
因此,如果您为托管表编写一个删除查询,它也会删除该表并删除数据,但是对于非托管表,如果您编写一个删除查询,则只会删除符号链接指针(Meta-表的信息)到表的位置,但您的数据不会被删除,因此您需要使用rm命令从外部删除数据。