【发布时间】:2014-04-14 21:30:24
【问题描述】:
我想编写一个猪代码来执行分组并生成 31 个字段的总和,但在此之前我需要进行一些自定义处理,为此我编写了一个 eval 函数。我想如果我可以将 GROUP 和 SUM 操作包含到 UDF 中,我可以让它运行得更快。要做到这一点,我可以使用代数 UDF,如果可以的话,我的 inital()、intermed() 和 final() 的返回模式如何,如果没有,我还能如何实现它。下面是我的代码,谢谢。
a = LOAD './a' using PigStorage('|') AS (val:int, grp1, grp2, amt1:long, amt2:long, amt3 ... amt31:long);
b = FOREACH a GENERATE myudfs.Custom(val) AS custom_val, grp1, grp2, amt1 ... amt31;
c = GROUP b BY (custom_val,grp1, grp2);
d = FOREACH c GENERATE group, SUM(b.amt1) ... SUM(b.amt31);
store d into './op';
【问题讨论】:
标签: java hadoop apache-pig hdfs