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

Posted

技术标签:

【中文标题】将猪拉丁正则表达式代码转换为 Google BigQuery【英文标题】:Conversion of pig latin regular expression code into 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 - 也许您可以用与拉丁语无关的术语重新表述您的问题 - 只需说明您的输入是什么样子以及您想做什么。 【参考方案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 函数没有匹配组索引参数。

【讨论】:

你能分享我可以轻松学习正则表达式的任何文档吗?每个主题都有示例,并有详细的解释。我是正则表达式的新手,我很想学习它。 .. :(

以上是关于将猪拉丁正则表达式代码转换为 Google BigQuery的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL:通过正则表达式查找所有西里尔文(或非拉丁文)符号

将 C# 正则表达式代码转换为 Java

我将使用啥代码将类似 SQL 的表达式即时转换为正则表达式?

Java如何将每个单词的第一个字符转为大写

将 URL 十六进制代码转换为字符的正则表达式

以 7 位数字结尾的字段的 Big Query SQL 正则表达式