我目前正在使用 UDF 来获取输出,但是正则表达式会做同样的事情并且可能更快!
我在 pig 中运行代码时遇到问题,这是我要运行的代码行。
data = FOREACH f GENERATE FLATTEN(REGEX EXTRACT(col4,'(?:\.)([^\.]*\.?[^\.]*)$')) AS (url:chararray) ;
这行代码出现错误语法错误,'(' 或附近的意外符号
正则表达式通过获取 google.co.uk 来工作,并将返回 .co.uk,google.com 将返回 .com 链接:http://gskinner.com/RegExr/? 372tm
然后我的想法是按 tld 的数量来计算。例如 3 co.uk
countURL = group data by url;
result = foreach countURL generate group, COUNT($1);
如果有人可以提供帮助,那就太好了。
谢谢