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

BigQuery加载CSV遇字段名字符映射错误,求解决方案

解决BigQuery加载CSV时"LEVEL"字段名不支持的问题

直接可用的解决方案

  • 启用字符映射V2:在LOAD DATA语句中添加field_name_policy = 'MAP_V2'参数,让BigQuery自动处理保留字字段名,无需修改原CSV文件。修改后的SQL如下:

    LOAD DATA OVERWRITE `green-gearbox-217510.DATA.INVERSION`
    FROM FILES ( 
      format = 'CSV',
      uris = ['gs://landing/INVERSIONES.csv'],
      field_name_policy = 'MAP_V2'
    );
    

    这个参数会自动将LEVEL这类保留字转换为合法字段名(比如level_),同时不影响其他字段的自动schema检测。

  • 手动修改CSV字段名:如果不想依赖自动映射,直接把CSV里的LEVEL字段改成非保留字(比如LEVEL_或USER_LEVEL),之后用原语句加载即可。

  • 显式指定Schema(不推荐):若必须保留原字段名,可以在LOAD DATA中手动定义Schema,用反引号包裹保留名字段:

    LOAD DATA OVERWRITE `green-gearbox-217510.DATA.INVERSION`
    FROM FILES ( 
      format = 'CSV',
      uris = ['gs://landing/INVERSIONES.csv']
    )
    SCHEMA (
      `LEVEL` INT64, -- 用反引号包裹保留字
      -- 其他字段按实际情况补充
      other_field STRING
    );
    

    注意:这种方式虽能绕过错误,但后续查询该字段时必须始终用反引号包裹,容易引发额外问题,优先推荐前两种方案。

问题原因

LEVEL是BigQuery的保留关键字(用于递归查询中的LEVEL函数),近期BigQuery可能调整了字段映射规则,原默认的字符映射(V1)不再允许直接使用保留字作为字段名,因此需要切换到V2映射或修改字段名适配新规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 15:28:13