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

在GCP BigQuery的dbt Python模型中配置Spark参数

解决方案:在dbt+Dataproc Spark环境设置Parquet Legacy兼容配置

针对你需要配置的四个Spark Parquet日期/时间兼容参数,以下是三种可行的设置方式:

1. 修正profiles.yml配置(全局生效)

你尝试的server_side_parameters是dbt-spark适配器支持的配置项,但需保证YAML缩进格式正确(YAML对缩进严格要求,建议用2个空格层级)。正确配置格式如下:

analytics_profile:
  outputs:
    dev:
      type: spark
      method: dataproc
      # 保留你已有的其他配置(如project_id、cluster名称等)
      server_side_parameters:
        "spark.sql.legacy.parquet.int96RebaseModeInRead": "CORRECTED"
        "spark.sql.legacy.parquet.int96RebaseModeInWrite": "CORRECTED"
        "spark.sql.legacy.parquet.datetimeRebaseModeInRead": "CORRECTED"
        "spark.sql.legacy.parquet.datetimeRebaseModeInWrite": "CORRECTED"

修改后重新运行dbt模型,这些参数会自动传递给Dataproc的Spark会话。

2. 在Python模型代码中设置(单模型生效)

如果仅需针对特定Python模型生效,可在模型代码中直接通过SparkSession配置:

def model(dbt, session):
    # 逐个设置Spark配置参数
    session.conf.set("spark.sql.legacy.parquet.int96RebaseModeInRead", "CORRECTED")
    session.conf.set("spark.sql.legacy.parquet.int96RebaseModeInWrite", "CORRECTED")
    session.conf.set("spark.sql.legacy.parquet.datetimeRebaseModeInRead", "CORRECTED")
    session.conf.set("spark.sql.legacy.parquet.datetimeRebaseModeInWrite", "CORRECTED")

    # 后续模型逻辑
    dbt.config(materialized="table")
    df = session.read.parquet("你的数据源路径")
    # ... 数据处理、转换逻辑
    return df

这种方式灵活性高,仅对当前模型生效,不影响其他dbt模型。

3. Dataproc集群全局配置(所有Spark任务生效)

如果希望集群上所有Spark任务都默认继承这些配置,可在集群层面设置:

  • 创建集群时配置:使用gcloud命令添加参数:
gcloud dataproc clusters create 你的集群名 \
    --region 你的集群区域 \
    --properties spark.sql.legacy.parquet.int96RebaseModeInRead=CORRECTED,spark.sql.legacy.parquet.int96RebaseModeInWrite=CORRECTED,spark.sql.legacy.parquet.datetimeRebaseModeInRead=CORRECTED,spark.sql.legacy.parquet.datetimeRebaseModeInWrite=CORRECTED
  • 已有集群修改:进入GCP控制台的Dataproc集群详情页,编辑集群的Spark配置,添加上述四个参数后保存,重启集群即可生效。

你可根据需求选择对应方式:全量模型需配置优先选profiles.yml或集群全局配置;单个模型需配置则用代码设置更合适。

内容的提问来源于stack exchange,提问作者Bo Bucklen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 09:52:16