我正在对我的原始数据进行猪处理,以从中构建一些结构。
这是示例数据:
Nov 1 18:23:34 dev_id=03 user_id=0123 int_ip=198.0.13.24 response_code=5
预期输出:
(Nov 1 18:23:34, 03, 0123, 198.0.12.24, 5)
我正在尝试 CONCAT(month,day,time) 并删除“=”之前的信息。我正在使用以下脚本:
A = LOAD '----' using PigStorage('\t') as (m: chararray, d: chararray, t: chararray, devid: chararray, userid: chararray, intip: chararray, response: chararray);
B = foreach A generate CONCAT(CONCAT(CONCAT(CONCAT(mnth, ' '), day), ' '), time);
C = foreach A generate REGEX_EXTRACT(devid, '^.*=(.*)$', 1),REGEX_EXTRACT(userid, '^.*=(.*)$', 1), REGEX_EXTRACT(intip, '^.*=(.*)$', 1),REGEX_EXTRACT(response, '^.*=(.*)$', 1);
Dump B; Dump C;
输出:
(11月1日18:23:34)
(03, 0123, 198.0.12.24, 5)
我需要的建议:
我可以合并、联合和加入 (B, C) 以达到预期的输出吗?由于没有共同的领域,我们怎么能做到这一点。
是否有任何其他方法可以优化脚本或不同的过程以使用 Map-Reduce 程序获得预期的输出。
期待回复,非常感谢您的帮助。