我通过 pig 将日志文件加载到hdfs时感到震惊。
基本上,此日志文件具有用于分析的WebSphere Server异常。
现在,在中断异常详细信息的组件并加载到架构中时,我无法将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的新手,所以这里的任何指针都将对您有所帮助。
最佳答案
不能使用正则表达式来实例化PigStorage,而是可以使用piggybank库的MyRegExLoader(String pattern)
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);
关于hadoop - PigStorage()中的正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37944485/