kri*_*itx 1 java regex linux apache-pig
我需要一些关于如何使用Java中的hadoop而不是Pig处理基础结构日志的建议,因为我认为Pig在读取日志文件时不支持正则表达式过滤器.
例如,我有cisco日志和Web服务器日志,我想按行过滤特定值并输入hadoop.
在线有几个建议,即首先将其更改为csv格式,但如果日志文件是GBs ???
是否可以在"map"阶段过滤行,即程序将从HDFS中的文件中读取行并将其发送到mapper ...
我需要一些关于最佳方式和清洁方式的建议....
谢谢.
我们可以做REGEX
的操作上PIG
.PIG内部仅使用JAVA REGEX规范.
请仔细阅读以下示例:
myfile = LOAD '999999-99999-2007' AS (a:chararray);
filterfile = FILTER myfile BY a MATCHES '.*DAY+.*';
selectfile = FOREACH filterfile GENERATE a, SIZE(a) AS size;
STORE selectfile INTO '/home/jagadish/selectfile';
Run Code Online (Sandbox Code Playgroud)
示例中使用的文件大小为2.7 GB,包含1100万行.其中正则表达式输出为450,000行.
我相信这回答了你的问题,否则请告诉我.