我有一些http访问日志的tbs,我正试图分析这些日志以供历史参考。我试图得到每天的独特访客(IP)和每日点击量。
如果是mysql,我会这样做:
SELECT COUNT(1) from access_logs union
SELECT COUNT(DISTINCT(ip)) from access_logs
有没有什么方法可以用一个工作做类似的事情,这样我就不用再做Map工作了?
我知道这不起作用,但这是一种功能,我正在寻找。
X = (fqdn:chararray,ip:chararray,date:chararray,time:chararray,uri:chararray,ua:chararray);
Y = COUNT(X);
Z = COUNT(DISTINCT(X.IP);
OUT = UNION Y,Z;
STORE OUT into ...
1条答案
按热度按时间9bfwbjaz1#
如果您想计算输入中的所有记录,则需要使用group all,这将创建一个包。出于性能原因,它还使用了累加器distinct函数org.apache.pig.builtin.distinct
如果IP太多,并且出现与内存相关的异常,则可以执行以下操作: