使用Delta Lake列映射重命名和删除列

预览

此功能已在公共预览

Databricks支持Delta Lake表的列映射,它允许只对元数据进行更改,将列标记为已删除或重命名,而无需重写数据文件。它还允许用户使用Parquet不允许的字符(如空格)命名Delta表列,这样用户就可以直接将CSV或JSON数据输入Delta,而不需要由于之前的字符限制而重命名列。

重要的

在表上启用列映射可能会中断依赖Delta更改数据提要的下游操作。看到更改启用列映射的表的数据提要限制

如何启用三角洲湖列映射

重要的

为表启用列映射将升级Delta表版本.本次协议升级是不可逆的。启用了列映射的表只能在Databricks Runtime 10.2及以上版本中读取。

列映射需要以下Delta协议:

  • 阅读器版本2或以上。

  • 作者版本5或以上。

对于具有所需协议版本的Delta表,可以通过设置启用列映射delta.columnMapping.mode的名字

可以使用以下命令升级表版本并启用列映射:

改变表格<table_name>TBLPROPERTIES“delta.minReaderVersion”' 2 '“delta.minWriterVersion”“5”“delta.columnMapping.mode”“名字”

请注意

在启用列映射后,无法关闭它。如果你试着设置“delta.columnMapping.mode”“没有”,你会得到一个错误。

重命名列

请注意

在Databricks Runtime 10.2及以上版本中可用。

当Delta表启用列映射时,可以重命名列:

改变表格<table_name>重命名old_col_namenew_col_name

有关更多示例,请参见更新Delta Lake表模式

删除列

请注意

在Databricks Runtime 11.0及以上版本中可用。

当Delta表启用列映射时,可以删除一个或多个列:

改变表格table_name下降col_name改变表格table_name下降col_name_1col_name_2…)

详情请参见更新Delta Lake表模式

列名中支持字符

当Delta表启用列映射时,可以在表的列名中包含空格和以下任意字符:, {} () \ n \ t =