Databricks 删除一个增量 table?
Databricks drop a delta table?
如何在 Databricks 中删除 Delta Table?我在文档中找不到任何信息...也许唯一的解决方案是使用魔术命令或 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 table
中
df.write.format("delta").mode("overwrite").save("/delta/test_table")
然后,如果我尝试删除它.. drop table 或类似的操作是不可能的
%SQL
DROP TABLE 'delta.test_table'
其他选项都没有,例如 drop table 'delta/test_table',等等...
你可以使用 sql 命令来做到这一点。
%sql
DROP TABLE IF EXISTS <database>.<table>
如果你想完全删除 table 那么 dbutils 命令是可行的方法:
dbutils.fs.rm('/delta/test_table',recurse=True)
据我了解,您保存的增量 table 位于 blob 存储中。删除连接的数据库 table 会将其从数据库中删除,但不会从存储中删除。
基本上在数据块中,Table 有 2 种类型 - 托管和非托管
1.Managed - tables 其中 Spark 管理数据和元数据,Databricks 将元数据和数据存储在您帐户中的 DBFS 中。
2.Unmanaged - databricks 仅管理元数据,但数据不由 databricks 管理。
因此,如果您为 Managed tables 编写删除查询,它将删除 table 并同时删除数据,但对于 Unmanaged tables 如果您写一个 drop query 它会简单地删除指向 table 位置的 sym-link 指针(table 的元信息)但是你的数据不会被删除,所以你需要从外部删除数据使用 rm 命令。
从GUI中删除,
Data -> DatabaseTables -> 选择你的数据库 -> select table 旁边的下拉菜单并删除。
我不知道这种类型的删除的后果,所以买者自负
如何在 Databricks 中删除 Delta Table?我在文档中找不到任何信息...也许唯一的解决方案是使用魔术命令或 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 table
中df.write.format("delta").mode("overwrite").save("/delta/test_table")
然后,如果我尝试删除它.. drop table 或类似的操作是不可能的
%SQL
DROP TABLE 'delta.test_table'
其他选项都没有,例如 drop table 'delta/test_table',等等...
你可以使用 sql 命令来做到这一点。
%sql
DROP TABLE IF EXISTS <database>.<table>
如果你想完全删除 table 那么 dbutils 命令是可行的方法:
dbutils.fs.rm('/delta/test_table',recurse=True)
据我了解,您保存的增量 table 位于 blob 存储中。删除连接的数据库 table 会将其从数据库中删除,但不会从存储中删除。
基本上在数据块中,Table 有 2 种类型 - 托管和非托管
1.Managed - tables 其中 Spark 管理数据和元数据,Databricks 将元数据和数据存储在您帐户中的 DBFS 中。
2.Unmanaged - databricks 仅管理元数据,但数据不由 databricks 管理。
因此,如果您为 Managed tables 编写删除查询,它将删除 table 并同时删除数据,但对于 Unmanaged tables 如果您写一个 drop query 它会简单地删除指向 table 位置的 sym-link 指针(table 的元信息)但是你的数据不会被删除,所以你需要从外部删除数据使用 rm 命令。
从GUI中删除, Data -> DatabaseTables -> 选择你的数据库 -> select table 旁边的下拉菜单并删除。 我不知道这种类型的删除的后果,所以买者自负