a = load '/text.log' using TextLoader() as line:chararray;
b = foreach a generate REGEX_EXTRACT_ALL(line,'projectVersion:[^\t]*');
c = group b by $0;
d = foreach c generate group, COUNT(b);
dump d;
以上是我的脚本,我的样本数据有点像..
projectName:test logType:test logSource:test logBody:test
我得到了这个结果
(,0)
我查了Pig API,它说如果pattern不匹配,REGEX_EXTRACT_ALL将返回空元组,但显然存在该模式。所以我尝试了更简单的任务..
b = foreach a generate REGEX_EXTRACT_ALL(line,'projectVersion');
并尝试了
b = foreach a generate REGEX_EXTRACT_ALL(line,'p');
我一次又一次地得到空洞的结果。
我不知道为什么这个简单的东西不起作用,我做错了什么?
答案 0 :(得分:0)
尝试
b = foreach a generate REGEX_EXTRACT_ALL(line,'projectVersion:([^\t]*)');
您需要使用“()”来表示您想要的内容。
对于你的情况,
projectName:test logType:test logSource:test logBody:test
b将有一个元组('test')