gpt4 book ai didi

regex - Hadoop pig : Extract all substrings matching a given regular expression

转载 作者:行者123 更新时间:2023-12-01 09:36:11 24 4
gpt4 key购买 nike

我正在解析以下形式的一些数据:

(['L123', 'L234', 'L1', 'L253764'])
(['L23', 'L2'])
(['L5'])
...

括号内的短语(包括方括号)被编码为单个字符数组。

我只想提取 L+(数字)标签以获得以下形式的元组:

((L123, L234, L1, L253764))
((L23, L2))
((L5))

我尝试使用正则表达式“(L\d+)”使用 REGEX_EXTRACT_ALL,但它似乎每行只提取一个标签,这对我来说毫无用处。有没有办法按照我上面描述的方式创建元组?

最佳答案

如果顺序无关紧要,那么这将起作用:

-- foo is the tuple, and bar is the name of the chararray
B = FOREACH A GENERATE TOKENIZE(foo.bar, ',') AS values: {T: (value: chararray)} ;
C = FOREACH B {
clean_values = FOREACH values GENERATE
REGEX_EXTRACT(value, '(L[0-9]+)', 1) AS clean_value: chararray ;
GENERATE clean_values ;
}

架构和输出是:

C: {clean_values: {T: (clean_value: chararray)}}
({(L123),(L234),(L1),(L253764)})
({(L23),(L2)})
({(L5)})

通常,如果您不知道数组将包含多少个元素,那么包会更好。

关于regex - Hadoop pig : Extract all substrings matching a given regular expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17666465/

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