【问题标题】:Conversion of pig latin regular expression code into Google BigQuery将猪拉丁正则表达式代码转换为 Google BigQuery
【发布时间】:2015-06-01 18:48:59
【问题描述】:

我正在尝试将以下 Pig Latin regex_extract 函数转换为 Google BigQuery 正则表达式。有人可以分享他们对此的想法。我的 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

【问题讨论】:

  • 大家有什么想法......?
  • 可能没有多少人同时了解拉丁语和 BigQuerySQL - 也许您可以用与拉丁语无关的术语重新表述您的问题 - 只需说明您的输入是什么样子以及您想做什么。

标签: regex apache-pig bigdata google-bigquery


【解决方案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]

Regex 的解释应该类似,但也许您可以共享几行数据进行测试? AFAIK 的唯一区别是 BigQuery 的 REGEX_EXTRACT 函数没有匹配组索引参数。

【讨论】:

  • 你能分享我可以轻松学习正则表达式的任何文档吗?每个主题都有示例,并有详细的解释。我是正则表达式的新手,我很想学习它。 .. :(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-02
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 2020-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多