gpt4 book ai didi

Hadoop/Pig 正则表达式匹配

转载 作者:可可西里 更新时间:2023-11-01 15:07:38 25 4
gpt4 key购买 nike

这是一种奇怪的情况,但我正在寻找一种方法来使用 MATCHES 之类的东西但在未知模式列表(未知长度)上进行过滤。

也就是说,如果给定的输入是两个文件,其中一个的编号为 A:

xxxx

年年

呜呜呜

Zyy

...等...

另一个是模式B:

xx.*

yyy.*

...等...

如何根据第二个输入中的所有模式过滤第一个输入?

如果我事先知道所有的模式,我可以A = FILTER A BY (num MATCHES 'somepattern.*' OR num MATCHES 'someotherpattern'....);

问题是我事先不知道它们,并且由于它们是模式而不是简单的字符串,所以我不能只使用联接/组(至少据我所知)。也许是一个奇怪的嵌套 FOREACH...东西?有什么想法吗?

最佳答案

如果您使用作为OR 操作的|,您可以从各个模式中构建一个模式。

(xx.*|yyy.*|zzzz.*)

这将检查它是否匹配任何模式。

编辑:要创建组合的正则表达式模式:
* 创建一个以 (
开头的字符串* 读入每一行(假设每一行都是一个模式)并将其附加到一个字符串后跟 |
* 完成读取行后,删除最后一个字符(这将是不需要的 |)
* 追加 )

这将创建一个正则表达式模式来检查输入文件中的所有模式。 (注意:假定文件包含有效模式)

关于Hadoop/Pig 正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5706857/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com