2016-02-09 4 views
1

от Google экспорта аналитика Я пытаюсь извлечь последний номер из поля trafficSource.campaign со следующим запросом:BigQuery REGEXP_EXTRACT возвращение нулевой

SELECT 
REGEXP_EXTRACT(trafficSource.campaign,r':(\d+$)') as campaign, 
FROM 
    [95677969.ga_sessions_20160109] AS results, 
WHERE 
    hits.type IN ('TRANSACTION','PAGE') 

Этот запрос отлично работает в пользовательском интерфейсе, и количество возвращенного каждый матч подряд выражение reg, но когда я копирую этот запрос в свой скрипт, всегда возвращается значение null.

значения trafficSource.campaign, как это:

_dfa_107202:4637224:8531522 

Пожалуйста, может кто-нибудь мне помочь?

+0

Не могли бы вы разместили здесь свой скрипт? –

+0

Благодарим вас за комментарий @VadimSolovey, проблема была связана с регулярным выражением, он не принимает классы символов re2 perl. –

ответ

3

Устранение проблемы здесь.

Когда вы даете BigQuery что-то вроде:

SELECT COUNT(*) FROM [publicdata:samples.shakespeare] WHERE REGEXP_MATCH(word, r'^\w$') 

Это будет прекрасно работать в BigQuery UI (283 результат). Но если вы скопируете одну и ту же строку на ваш любимый язык программирования, она, вероятно, попытается прочитать \ как один из ее escape-символов, так что вам придется удвоить ее, либо нарисуйте альтернативный способ подачи строки, неизмененной вашим скриптовый интерпретатор.

+1

Привет, Фелипе, вы правы, проблема в движке регулярных выражений и работает с 'r '([[: digit:]] {3,} $)'' –

Смежные вопросы