gpt4 book ai didi

hadoop - 从 PIG 包中提取元组

转载 作者:可可西里 更新时间:2023-11-01 15:00:50 34 4
gpt4 key购买 nike

文件内容(test.txt):

Some    specific    column      value: x192.168.1.2     blah       blah
Some specific row value: y192.168.1.3 blah blah
Some specific field value: z192.168.1.4 blah blah

pig 查询:

A = LOAD 'test.txt' USING PigStorage('\t') AS (data1: chararray , data2: chararray , data3: chararray, data4: chararray , data5: chararray , data6: chararray);

B = foreach A generate data3, data4;

C = filter B by data3 matches 'row';

D = foreach C generate data4;

E = foreach D generate TOKENIZE(data4);

输出:

((value:), (y192.168.1.3))

现在我想在这个输出包中提取特定的元组,比如第二个元组 (y192.168.1.3)。在此之后我想提取IP地址。我正在尝试使用 UDF,但卡住了。

最佳答案

这是我会做的。

pig 脚本

A = LOAD 'test.txt' USING PigStorage('\t') AS (data1: chararray , data2: chararray , data3: chararray, data4: chararray , data5: chararray , data6: chararray);
B = foreach A generate data3, data4;
C = filter B by data3 matches 'row';
D = foreach C generate data4;
E = foreach D generate REGEX_EXTRACT($0,'value: .([0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+).*', 1);

输出

(192.168.1.3)

如果需要,您可以使用更疯狂的正则表达式来提取 IP 地址:Extract ip addresses from Strings using regex

关于hadoop - 从 PIG 包中提取元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9816592/

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