Delta 列映射
重要
此功能目前以公共预览版提供。
Delta Lake 支持列映射,允许 Delta 表列和对应的 Parquet 列使用不同的名称。 列映射可以在 Delta 表上启用 Delta 模式演化操作,例如 RENAME COLUMN,而无需重写底层 Parquet 文件。 而且用户可以使用 Parquet 不允许使用的字符(例如空格)来命名 Delta 表列,这样用户便可以直接将 CSV 或 JSON 数据摄取到 Delta 中,而无需因先前的字符限制而重命名列。
要求
Databricks Runtime 10.2 或更高版本。
列映射要求 Delta 表版本为读取器版本 2 和写入器版本 5。 对于具有所需表版本的 Delta 表,你可以通过将
delta.columnMappingMode设置为name来启用列映射。 你可以使用单个ALTER TABLE命令升级表版本并启用列映射:ALTER TABLE <table_name> SET TBLPROPERTIES ( 'delta.minReaderVersion' = '2', 'delta.minWriterVersion' = '5', 'delta.columnMapping.mode' = 'name' )注意
在表中设置这些属性后,你只能使用 Databricks Runtime 10.2 及更高版本读取和写入此 Delta 表。
列名中支持的字符
为 Delta 表启用列映射后,你可以在表的列名中包含空格以及以下任何字符:,;{}()\n\t=。
重命名列
为 Delta 表启用列映射后,你可以重命名列:
ALTER TABLE <table_name> RENAME COLUMN old_col_name TO new_col_name
有关更多示例,请参阅重命名列。
删除列
为 Delta 表启用列映射后,你可删除一列或多列:
ALTER TABLE table_name DROP COLUMN col_name
ALTER TABLE table_name DROP COLUMNS (col_name_1, col_name_2, ...)
有关详细信息,请参阅删除列。