GoogleCloud BigQuery обработка исключений - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь запустить следующую GooleCould's 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.

Как я должен обрабатывать исключения?

1 Ответ

0 голосов
/ 20 ноября 2018

Вы должны использовать 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.имя_функции () - https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#safe-prefix

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...