Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用正则表达式的Java Spark日志解析器_Java_Regex_Parsing - Fatal编程技术网

使用正则表达式的Java Spark日志解析器

使用正则表达式的Java Spark日志解析器,java,regex,parsing,Java,Regex,Parsing,我正在尝试为使用Log4J创建的Spark日志创建一个Java解析器。 我写这段代码是为了识别一个开始的任务日志行,但它不起作用,我也不知道为什么 这是正则表达式: public static final String datePattern = "\\d{4}\\-\\d{2}\\-\\d{2}"; public static final String timePattern = "\\d{2}\\:\\d{2}\\:\\d{2}\\,\\d{3}"; public static final

我正在尝试为使用Log4J创建的Spark日志创建一个Java解析器。 我写这段代码是为了识别一个开始的任务日志行,但它不起作用,我也不知道为什么

这是正则表达式:

public static final String datePattern = "\\d{4}\\-\\d{2}\\-\\d{2}";
public static final String timePattern = "\\d{2}\\:\\d{2}\\:\\d{2}\\,\\d{3}";
public static final String timeStampPattern = "(?<timeStamp>" + datePattern + "\\s" + timePattern + ")";
public static final String logLevelPattern = "(?<logLevel>\\w+)";
public static final String loggingClassPattern = "(?<loggingClass>\\w+:)";
public static final String taskUIdPattern = "(?<UIdPattern>\\d+)";
public static final String taskIdPattern = "\\d.\\d:\\d+";
public static final String taskStatusPattern = null;
public static final String endTaskLabelPattern = null;
public static final String stringPatternStartTask = timeStampPattern + 
        " " + logLevelPattern + 
        " " + loggingClassPattern + 
        " " + "Starting task" +
        " " + taskIdPattern +
        " " + "as TID" +
        " " + taskUIdPattern +
        "\\z";
我试图识别的线条如下:

2016-01-08 14:01:02 INFO TaskSetManager: Starting task 1.0:0 as TID 0 on executor 1
您的正则表达式以:

    " " + "as TID" +
    " " + taskUIdPattern +
    "\\z";
但是在字符串中,在执行器1上有
taskUIdPattern
之后,您必须在执行器1上添加
,或者在执行器\\d上添加
taskUIdPattern
之后的正则表达式中添加

    " " + "as TID" +
    " " + taskUIdPattern +
    "\\z";