google-cloud-platform - GoogleCloud BigQuery 异常处理
问题描述
我正在尝试运行以下 GooleCould 的 BigQuery:
select REGEXP_REPLACE(SPLIT(site, "=")[OFFSET(1)], r'%\d+', ' ')
from some_db
where site = 'something'
and STARTS_WITH(site, 'XXX')
并在执行过程中出现以下错误:
数组索引 1 超出范围(溢出)
当我使用 AWS Athena 时,我曾经使用try语句来解决此类错误,但我找不到与 BigQuery 等效的任何东西。
我应该如何处理异常?
解决方案
您应该使用 SAFE_OFFSET 而不是 OFFSET
select REGEXP_REPLACE(SPLIT(site, "=")[SAFE_OFFSET(1)], r'%\d+', ' ')
from some_db
where site = 'something'
and STARTS_WITH(site, 'XXX')
至于更通用的 try/catch 问题 - BigQuery 没有一个 - 但有一个 SAFE 前缀可以在大多数函数中用作 SAFE.function_name() - https://cloud.google.com/bigquery/docs/reference /standard-sql/functions-and-operators#safe-prefix
推荐阅读
- sql - 在postgresql中拆分多个重叠的日期范围间隔
- python - 问题:ValueError:使用序列设置数组元素
- javascript - webpack中如何修复npm run build
- linux - Wayland 全局指针位置
- php - 通过 HTTP API 将大文件上传到 Dropbox
- python - 使用python减少for循环中的行数
- java - 需要从 spark java 中的一条记录生成两条记录
- xamarin - Xamarin,我如何立即从选择器和条目中清除数据。使用 montemagno Xamarin.plugins.setting
- flutter - 如何修复'RangeError(索引):无效值:有效值范围为空:0'在颤动
- django - 如何在模型类中使用覆盖 save() 分配对象权限?