将猪拉丁正则表达式代码转换为Google BigQuery

时间:2015-06-01 18:49:00

标签: regex apache-pig bigdata google-bigquery

我正在尝试将以下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

1 个答案:

答案 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函数没有匹配组索引参数。