gpt4 book ai didi

sql - 如何从Databricks Delta表中删除列?

转载 作者:行者123 更新时间:2023-12-03 17:50:22 24 4
gpt4 key购买 nike

我最近开始发现Databricks,并遇到需要删除增量表中某一列的情况。当我使用PostgreSQL时,就像

ALTER TABLE main.metrics_table 
DROP COLUMN metric_1;

我在DELETE上浏览了Databricks的 documentation,但只涵盖了 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

请记住,与关系数据库不同,您的存储中有物理 Parquet 文件,您的“表”只是已应用于它们的模式。

在关系世界中,您可以更新表元数据以轻松删除列,而在大数据世界中,您必须重新编写底层文件。

从技术上讲, Parquet 可以处理模式演变(请参阅 Schema evolution in parquet format )。但是 Delta 的 Databricks 实现没有。这可能太复杂了,不值得。

因此,这种情况下的解决方案是创建一个新表并插入要从旧表中保留的列。

关于sql - 如何从Databricks Delta表中删除列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54457068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com