使用空组密钥进行分组和计数

时间:2014-05-16 20:38:50

标签: apache-pig

我有一个Pig脚本,可以为页面视图生成一些统计信息。这是一个片段:

pageview_content_age_tmp = 
  FOREACH pageviews GENERATE ((1398816000000L-created)/86400000L)/7L as age;
pageview_content_age = 
  FOREACH pageview_content_age_tmp GENERATE (age>6L?6L:age) as age;
content_created_hist = 
  FOREACH (group pageview_content_age by age) GENERATE group as age, 
  COUNT(pageview_content_age) as count;
content_created_hist_sorted = ORDER content_created_hist by age;
dump content_created_hist_sorted;

这会生成所查看页面年龄的直方图(created是创建内容时的时间戳),例如,

(,0)
(0,8873)
(1,6701)
(2,9868)
(3,6466)
(4,12593)
(5,4971)
(6,51520)

第一行(,0)对应于null键。然而,事实证明结果是错误的,即与空键相关联的页面视图的数量远远高于0(这是由丢失的数据引起的,这很好)。

根据the documentation for version 0.10.1,关系group pageview_content_age by age应该将所有与空键对应的页面视图记录组合在一起,因为它正在对单个关系进行分组,但是有些东西正在打破。我想知道以前的关系是否会随着年龄的增长而压缩所有数据> 7这就是弄乱了。任何线索?

1 个答案:

答案 0 :(得分:1)

COUNT忽略空值。您正在寻找COUNT_STAR