猪脚本分组不可能

时间:2014-01-04 13:04:14

标签: apache-pig

对于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;};

感谢您的提示。

1 个答案:

答案 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;

感谢。