gpt4 book ai didi

regex - Regex_Extract使用PIG

转载 作者:行者123 更新时间:2023-12-02 21:36:28 25 4
gpt4 key购买 nike

我正在使用PIG在一组记录中查找字符串,然后输出文件名(使用UDF追加到每条记录的末尾)和匹配字符串的计数。文件名如下所示2015-03-04.23_55_05.Abhi_Ram.Info.json。

以下是我的 pig 脚本:

REGISTER UDF;

input_data= LOAD 'input_dir' using classname();

record_match = FILTER input_data by $0 matches '$Search_string';

group_record = GROUP record_match ALL;

record_count = FOREACH record_match GENERATE REGEX_EXTRACT($0,'((\\d{4}-\\d{2}-\\d{2})\\.(\\d.*)\.(\\w.*)\\.(\\w.*)\\.(json))',1), COUNT(record_match);

dump record_count;

我想输出

2015-03-04.23_55_05.Abhi_Ram.Info.json, count($Search_string).



我在正则表达式中缺少什么吗?

最佳答案

我不明白为什么要从源代码中将正则表达式应用于第一个字段。您的第一个字段是否具有文件名模式?因为,

$ 0->表示连续的第一条记录。

然后,如果要将源文件名包含在输出记录中,简单的方法是

read = LOAD 'inp.data' USING PigStorage(',','-tagsource');

它将源文件名附加到记录开始处。
2015-03-04.23_55_05.Abhi_Ram.Info.json, count($Search_string)

根据您的问题,REGEX_EXTRACT为:
read = load 'test.data' using PigStorage(',');
date = foreach read generate FLATTEN(REGEX_EXTRACT($0,'(\\d{4})-(\\d{2})-(\\d{2}).(\\d{2})_(\\d{2})_(\\d{2}).(\\w.*)_(\\w.*).(\\w.*).json',0)) as (filename_dt:chararray);
dump date;

关于regex - Regex_Extract使用PIG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31884044/

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