我最近开始发现Databricks,并遇到需要删除增量表中某一列的情况。当我使用PostgreSQL时,就像
ALTER TABLE main.metrics_table DROP COLUMN metric_1;
我在浏览有关DELETE的Databricks文档,但仅涉及DELETE the rows that match a predicate。
DELETE the rows that match a predicate
我还找到了关于DROP数据库,DROP函数和DROP表的文档,但是关于如何从增量表中删除列的内容却一无所获。我在这里想念什么?有没有从删除表中删除列的标准方法?
Databricks表上没有下拉列选项:https ://docs.databricks.com/spark/latest/spark-sql/language-manual/alter-table-or- view.html#delta-schema- constructs
请记住,与关系数据库不同,您的存储中没有物理拼花文件,您的“表”只是已应用于它们的架构。
在关系世界中,您可以更新表元数据以轻松删除列,而在大数据世界中,您必须重新编写基础文件。
从技术上讲,镶木地板可以处理架构演变。但是Delta的Databricks实现却没有。它可能太复杂了,不值得。
因此,在这种情况下,解决方案是创建一个新表并插入要保留在旧表中的列。