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

BQ脚本在Composer中运行失败,报预期输入结束但得到字符串字面量错误

报错原因
  • 核心原因:你使用Python普通双引号"定义跨多行的SQL字符串,该写法不符合Python多行字符串定义规范,会导致提交到BigQuery的SQL内容被截断,BigQuery解析不完整的SQL时,会在预期语句结束的位置检测到多余的字符串字面量,触发该报错。
  • 次要原因:若确认字符串定义规范无误,则是你安装的google-cloud-bigquery依赖包版本过低,旧版本默认不支持提交包含DECLARE语句的多语句BigQuery脚本,会拆分多语句内容分别解析,触发语法错误。
解决方案
  1. 优先将SQL字符串改为使用Python三引号包裹,保证多行SQL内容完整被识别,修改后的代码示例如下:
v_minus_statement_s_t="""DECLARE dummy_key DEFAULT to_hex(sha256('*nik'));
DECLARE dummy_value DEFAULT '*nik';
DECLARE currency_value DEFAULT '$';
select
to_hex(sha256(cast(ID as string))) as dw__id,
to_hex(sha256(cast(ID as string))) as dw_sub_id
from voice"""
op = client.query(v_minus_statement_s_t).to_dataframe()
  1. 若修改后仍报错,执行以下命令升级BigQuery依赖包到最新版本:
    pip install --upgrade google-cloud-bigquery
  2. 故障排查补充:执行查询前可先打印v_minus_statement_s_t变量值,确认SQL内容完整无转义异常、无截断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:15:04