pigstorage()中的正则表达式

cbjzeqam  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(486)

我是通过pig将一个日志文件加载到hdfs的孩子。基本上,此日志文件具有用于分析的WebSphereServer异常。
现在,在分解异常详细信息的组件并加载到模式中时,我无法将regex指定到pigstorage构造函数中。
我的代码:

inputFile = load '/datalake/xxx/yyy/bd_cni/log_analytics_project/raw_data/APSRP7420/SystemOut_16.05.22_11.46.13.log' USING PigStorage('\[\d+\/\d+\/\d+\s+\d+\:\d+\:\d+\:\d+\s+\w+\]') as (someColumnName:chararray);

我得到的错误:

[main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1200: <line 1, column 147>  Unexpected character '['
Details at logfile: /home/rshukla8/pig_1466510599995.log

我对pig和unix完全是新手,所以这里的任何指针都会有帮助。

scyqe7ek

scyqe7ek1#

pigstorage不能与regex示例化,相反,您可以使用 MyRegExLoader(String pattern) 小Pig银行图书馆

inputFile = load '/datalake/xxx/yyy/bd_cni/log_analytics_project/raw_data/APSRP7420/SystemOut_16.05.22_11.46.13.log' USING org.apache.pig.piggybank.storage.MyRegExLoader('\[\d+\/\d+\/\d+\s+\d+\:\d+\:\d+\:\d+\s+\w+\]') as (someColumnName:chararray);
pkln4tw6

pkln4tw62#

您可以使用piggybankcombinedlogloader,如下所示

REGISTER '<path of piggybank jar>/piggybank.jar'; 

    logs = LOAD '/in/combined_access_log' USING org.apache.pig.piggybank.storage.apachelog.CombinedLogLoader()
                AS (addr: chararray, logname: chararray, user: chararray, time: chararray,
                    method: chararray, uri: chararray, proto: chararray,
                    status: int, bytes: int, referer: chararray, userAgent: chararray);

相关问题