对于Web服务器日志文件示例我遇到分组问题。 使用以下命令分割日志文件并进行投影:
grunt> logs = FOREACH log_base GENERATE year, month, remoteAddr;
我得到以下输出:
(2011,Nov,10.175.120.85)
(2011,Nov,10.116.161.77)
(2011,Nov,10.163.35.206)
....
到目前为止没问题。但每个分组都喜欢:
grunt> grouped_logs = GROUP logs BY(year, month);
或仅按年份的简单分组,总是得到0结果。我不明白为什么这不起作用。我的代码如下:
grouped_logs = GROUP logs BY(year, month);
counted_logs = FOREACH grouped_logs {
unique_users = DISTINCT logs.remoteAddr;
GENERATE FLATTEN(group), COUNT(unique_users) AS UniqueUsers;};
感谢您的提示。
答案 0 :(得分:0)
老板你确定你在第一步之后获得的数据是正确的吗? 即
(2011,Nov,10.175.120.85)
(2011,Nov,10.116.161.77)
(2011,Nov,10.163.35.206)
....
因为当我加载相同的数据和您提到的脚本时,我得到了正确的结果。 结果如下所示,
(2011,Apr,1)
(2011,Feb,2)
(2011,Jan,2)
(2011,Jun,2)
(2011,Nov,3)
我建议你重新检查“日志”的输出
grunt> logs = FOREACH log_base GENERATE year, month, remoteAddr;
感谢。