将猪拉丁正则表达式代码转换为 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:通过正则表达式查找所有西里尔文(或非拉丁文)符号