猪群增加

时间:2014-10-06 06:44:41

标签: apache-pig

我将数据文件拆分为" |"所以我使用下面的代码。

  RAW_LOG = LOAD 'logs.log' USING TextLoader as (line:chararray);
  splt = foreach RAW_LOG  generate FLATTEN(STRSPLIT($0, '\\|'));   
  id_vals = foreach splt generate $4 as uid, $8 as site_id , $9 as dsid , $6 as amt;

我想要每个site_id的SUM(amt),我已尝试过group by,但没有工作。

1 个答案:

答案 0 :(得分:2)

我假设您希望最终结果是两列site_id和该site_id的amt总和。

您可以使用PigStorage直接加载管道分隔文件,无需加载然后拆分。尽管您可以使用$。

访问元素,但提供模式定义会很好

这是代码 -

RAW_LOG = LOAD 'logs.log' USING PigStorage('|') as (//YOUR SCHEMA DEFINITION);
SITE_GRP = group RAW_LOG  by site_id;
SITE_SUM = foreach SITE_GRP generate group, SUM(RAW_LOG.amt);

希望这有帮助。