BigQuery Python 笔记本手动运行正常,但在计划时失败

问题描述 投票:0回答:2

问题

我在 BigQuery 中编写了一个 Python 笔记本,我手动运行了很多次,没有出现错误,但我已经尝试了好几天按计划运行它,每次运行都会出现“失败”状态,并出现这个不起眼的错误:

单元执行期间遇到错误。

由于 Vertex AI 还显示我所有的 Python 笔记本,但不共享相同的计划,我尝试在 Vertex 中为同一笔记本创建一个新计划,并使用具有所有相同角色的 Vertex AI 的默认服务帐户,但有计划每次运行也会失败并出现类似的错误:

错误代码3:单元执行过程中遇到错误。

我检查了许多计划运行作业的日志资源管理器,但它们都没有错误,就好像一切都执行成功一样。

排除原因

当前版本和部署版本之间的差异

手动运行是在笔记本的部署版本上进行的。

超出某些 BigQuery 配额

我已检查配额和系统限制页面,没有超出配额。

服务代理缺乏权限

当计划运行由于缺乏权限而失败时,它会给出一个错误,指出缺少权限。没有这样的错误。此外,在为笔记本创建计划时,会在选择服务代理时进行检查,看看它是否缺少任何权限,并且那里也会引发错误。

google-bigquery
2个回答
1
投票

在写这个问题时,我决定制作一个新笔记本,并开始从失败的笔记本中复制代码块,以查看按计划运行它是否会在空时或添加特定代码块后失败。罪魁祸首原来是 BigQuery 魔术代码之前的 python 注释。例如:

此代码块将手动运行,但在计划运行时会失败,并出现难以描述的错误:

# python comment
%%bigquery testDataFrame --project ProjectName
SELECT * FROM `MyDataset.MyTable`;

虽然此代码块将手动和按计划运行成功:

%%bigquery testDataFrame --project ProjectName
SELECT * FROM `MyDataset.MyTable`;

0
投票

我遇到了同样的问题:由于“单元执行期间遇到错误。”而失败,在 BigQuery 中我预定的 python 笔记本上。

事实证明,从我的单元格中删除所有 python 注释将会产生成功的计划执行。

我称之为错误。

© www.soinside.com 2019 - 2024. All rights reserved.