【问题标题】:Pig latin Regex_extract_All猪拉丁Regex_extract_All
【发布时间】:2016-11-24 10:07:04
【问题描述】:

我是 pig 新手。我需要提取 catalina 日志,格式如下行。我需要我的程序使用可以读取从 INFO 开始的下一行的模式,但它不这样做。

A = LOAD 'catalina. USING TextLoader AS (line:chararray);  
B = FOREACH A GENERATE FLATTEN(REGEX_EXTRACT_ALL(line,'^([a-zA-z]{3}\\s[0-9]{1,2},\\s[0-9]{4}\\s[0-9]{1,2}:[0-9]{2}:[0-9]{2}\\s[A-Z]{2})(.*)INFO:(.*)$'))

STORE B IN 'output' ;

输入:

Nov 3, 2016 11:00:06 AM org.apache.catalina.startup.Catalina load INFO: Initialization processed in 470 ms.

【问题讨论】:

    标签: apache-pig


    【解决方案1】:

    您的问题是 INFO 之前和之后的两个 (.) 捕获。你想要这个:

    ^([a-zA-z]{3}\s[0-9]{1,2},\s[0-9]{4}\s[0-9]{1,2}:[0-9]{2}:[0-9]{2}\s[A-Z]{2})\s([\w\.]+)\sINFO:\s(.*)$
    

    【讨论】:

    • 嗨,首先,猪拉丁语不能只使用一个反斜杠。在我修复了这个之后 ^([a-zA-z]{3}\\s[0-9]{ 1,2},\\s[0-9]{4}\\s[0-9]{1,2}:[0-9]{2}:[0-9]{2}\\s [AZ]{2})\s([\\w\\.]+)\sINFO:\\s(.*) 。它执行了它,但没有产生任何输出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2017-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多