我正在尝试将以下Pig Latin regex_extract函数转换为Google BigQuery正则表达式。有人可以分享他们对此的看法。 My Pig Latin代码如下所示,并希望在Google BigQuery中以相同的方式实现它。如果可以,请分享您的宝贵意见。谢谢。
**`Pig Latin code :-`**
report = foreach temp generate referrerUrl,
REGEX_EXTRACT(referrerUrl, '(?i)[&\\\\?]referrer=([^&\\\\u003b]+).*', 1) as referrerUrl_Final,
lUrl,
REGEX_EXTRACT(locationUrl, '((?<=[\\\\u003B|&]r=)[^\\\\u003B|&]+)', 1) AS locationUrl_Final
答案 0 :(得分:1)
在这种情况下,Pig和BigQuery之间的转换并不多。只需将 temp 数据作为CSV或JSON加载到BigQuery中,然后使用:
SELECT
referrerURL,
REGEX_EXTRACT(referrerUrl, '(?i)[&\\\\?]referrer=([^&\\\\u003b]+).*') AS referrerUrl_Final,
lUrl,
REGEX_EXTRACT(locationUrl, '((?<=[\\\\u003B|&]r=)[^\\\\u003B|&]+)') AS locationUrl_Final
FROM
[Mydata.Temp]
正则表达式应该被类似地解释,但也许您可以共享几行数据进行测试? AFAIK的唯一区别是BigQuery的REGEX_EXTRACT函数没有匹配组索引参数。