Apache pig 添加猪群

Apache pig 添加猪群,apache-pig,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; 我想计算每个站

我用“|”分割数据文件,所以我使用下面的代码

  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;

我想计算每个站点id的总和(amt),我尝试了分组方式,但没有成功。

我假设您希望最终结果是两列站点id和该站点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);

希望这能有所帮助。

您想按站点id分组,并总结每个组的amt值吗?我得到了“双倍工作问题”。我尝试将float作为数据类型设置为amt touple,但它没有任何字符。您能否与double共享示例数据和架构定义,以及我得到的正确结果。我通过添加使其正常工作。(浮动)foreach内部铸造的金额。谢谢你,朋友。