databricks - 如何删除非托管三角洲湖表
问题描述
我正在尝试删除使用 writestream 创建的 delta 湖表。我尝试了删除表,但失败了
#table created as
df.writestream().outputmode("append").format("delta").start("/mnt/mytable")
#attempt to drop table
spark.sql("drop table '/mnt/mytable'")
解决方案
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) 中。因此,要删除非托管表的数据,您需要指定数据的路径。
推荐阅读
- amazon-web-services - 确保 dynamodb 中的单个活动项目
- php - 致命错误:允许的内存大小为 268435456 字节已用尽
- c# - IAsyncEnumerable 中缺少 await 运算符时的警告消息
- javascript - Mongoose .findOne 不是功能 - 使用护照
- antlr4 - 有没有办法在 antlr4 中指定依赖顺序的“至少其中一个”?
- r - 网页抓取时的 R 编码问题 - 如何修复损坏的文本?
- python - pynamodb 基于现有的 Class 对象创建模型
- javascript - 使用 React useEffect 在页面加载时滚动到元素中的位置
- javascript - 我真的很难让我的 json 数据显示在使用 javascript 的表中
- jquery - 从视图 jQuery 脚本渲染部分视图时不起作用。动态添加相同的内容时,它可以工作