gpt4 book ai didi

parsing - 用Pig解析系统日志文件

转载 作者:行者123 更新时间:2023-12-02 19:03:09 25 4
gpt4 key购买 nike

我在下面的日志中尝试按指示的列号1作为日期,2作为时间,3作为任务,4作为Error_Line和5其余所有列作为Error_Message解析它

|1     | |2     | |3   |     |4  | |5                                                                          |
09-15-16 05:23:45 B:VVBN 09064 Port 22 Device 10400 Remote 44 13331 Link Up RP2016
09-15-16 05:23:44 A:QAWE 09064 Port 22 Device 10400 Remote 44 13331 Link Up RP2016
09-15-16 05:23:44 B:VVBN 13425 Port 22 Device 10400 Remote 44 13331 Receive Time Error: 24666 23270 1396 69
09-15-16 05:23:43 B:QAWE 13372 Port 22 Device 10400 Remote 44 13331 Send Time Error: 444 1888 1444 69
09-15-16 05:23:43 A:VVBN 13425 Port 22 Device 10400 Remote 44 13331 Receive Time Error: 24666 23270 1396 69
09-15-16 05:23:43 A:CCBE 13372 Port 22 Device 10400 Remote 44 13331 Send Time Error: 444 1888 1444 69
09-15-16 05:21:56 B:VVBN 07270 Port 22 Device 10400 Remote 44 13331 AT Timer Expired
09-15-16 05:21:56 A:CCBE 07270 Port 22 Device 10400 Remote 44 13331 AT Timer Expired

这是我的剧本
logs = LOAD '/data/test_log.txt' USING PigStorge(' ') AS (date: chararray, time: chararray, task: chararray, line_error: int, error_message: chararray);
date = GROUP logs BY date;

counts = FOREACH date GENERATE COUNT($4) as count;

DUMP counts;

注意,列之间只有一个空格,而3列和4列之间只有五个空格。
我尝试了上面的脚本,但是对于日期而不是最后一列Error_message来说,它只适用于日期。
我正在尝试获取此输出包:
(09-15-16,05:23:45,B:VVBN,09064,Port 22 Device 10400 Remote 44 13331 Link Up RP2016)
(09-15-16,05:23:44,A:QAWE,09064,Port 22 Device 10400 Remote 44 13331 Link Up RP2016)
:
:

我只需要考虑日志文件中的任何其他列将前四列混合到一个列5中。

任何获得所需输出的建议。

最佳答案

您需要使用piggybank提供的MyRegExLoader来处理自定义日志文件。

  logs = LOAD '/data/test_log.txt' USING org.apache.pig.piggybank.storage.MyRegExLoader ('provide the regex ');

关于parsing - 用Pig解析系统日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39800887/

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