You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark 3.4已支持GENERATED ALWAYS AS,Delta Catalog何时支持该特性?

Delta Catalog对GENERATED ALWAYS AS列表达式的支持说明

Spark 3.4已支持列的GENERATED ALWAYS AS表达式,该版本不再对CREATE/REPLACE TABLE语句中的该语法抛出解析错误,仅在目录不支持时触发分析异常。

你尝试创建带生成列的Delta表的SQL语句如下:

CREATE TABLE IF NOT EXISTS delta_generated_column_test (
        id INT,
        name STRING,
        date_created TIMESTAMP,
        dt  DATE GENERATED ALWAYS AS (cast(date_trunc('MONTH',date_created) as date))
        )USING DELTA

执行后触发异常:

The feature is not supported: Table spark_catalog.default.delta_tttt does not support generated columns. Please check the current catalog and namespace to make sure the qualified table name is expected, and also check the catalog implementation which is configured by "spark.sql.catalog".

关于Delta Catalog的支持进度

目前Delta Lake官方尚未正式支持标准SQL的GENERATED ALWAYS AS生成列语法。不过Delta Lake提供了**衍生列(Derived Columns)**的替代方案,可通过以下方式实现类似计算列的效果:

  • 写入数据时通过Spark SQL直接计算生成目标列
  • 利用视图封装列计算逻辑,间接实现生成列的查询效果
  • 在MERGE/UPDATE操作中动态计算列值

社区已存在对该特性的需求讨论,未来适配Spark 3.4+的Delta Lake版本(如2.4及后续版本)有望纳入对标准GENERATED ALWAYS AS语法的原生支持,可关注Delta Lake官方更新日志跟踪进度。

内容的提问来源于stack exchange,提问作者业鹏王

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 23:47:23