最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

HadoopPigAlgebraicInterface

来源:动视网 责编:小采 时间:2020-11-09 13:22:54
文档

HadoopPigAlgebraicInterface

HadoopPigAlgebraicInterface:仔细看了一下hadoop pig 的udf 文档 在 Algebraic interface 设计上还是可以学习的。 一些聚合函数,如 SUM, COUNT 都得实现 Algebraic 接口 此接口要实现 三个方法,这三个方法都是返回具体实现的 class name 并且这些 class name都
推荐度:
导读HadoopPigAlgebraicInterface:仔细看了一下hadoop pig 的udf 文档 在 Algebraic interface 设计上还是可以学习的。 一些聚合函数,如 SUM, COUNT 都得实现 Algebraic 接口 此接口要实现 三个方法,这三个方法都是返回具体实现的 class name 并且这些 class name都


仔细看了一下hadoop pig 的udf 文档 在 Algebraic interface 设计上还是可以学习的。 一些聚合函数,如 SUM, COUNT 都得实现 Algebraic 接口 此接口要实现 三个方法,这三个方法都是返回具体实现的 class name 并且这些 class name都要实现 exec方法 public

仔细看了一下hadoop pig 的udf 文档 在 Algebraic interface 设计上还是可以学习的。

一些聚合函数,如 SUM, COUNT 都得实现 Algebraic 接口

此接口要实现 三个方法,这三个方法都是返回具体实现的 class name

并且这些 class name都要实现 exec方法

 public interface Algebraic{
 public String getInitial();
 public String getIntermed();
 public String getFinal();
 }

看 pig built in COUNT 的实现

这几个方法都可以对应对相关的hadoop 的map combine,reduce

map 对应 Initial

combine 对应 Intermed

reduce 对应 reduce

发现 java 的内部静态内还是很有用的

public class COUNT extends EvalFunc implements Algebraic{
 public Long exec(Tuple input) throws IOException {return count(input);}
 public String getInitial() {return Initial.class.getName();}
 public String getIntermed() {return Intermed.class.getName();}
 public String getFinal() {return Final.class.getName();}
 static public class Initial extends EvalFunc {
 public Tuple exec(Tuple input) throws IOException {return
 TupleFactory.getInstance().newTuple(count(input));}
 }
 static public class Intermed extends EvalFunc {
 public Tuple exec(Tuple input) throws IOException {return
 TupleFactory.getInstance().newTuple(sum(input));}
 }
 static public class Final extends EvalFunc {
 public Tuple exec(Tuple input) throws IOException {return sum(input);}
 }
 static protected Long count(Tuple input) throws ExecException {
 Object values = input.get(0);
 if (values instanceof DataBag) return ((DataBag)values).size();
 else if (values instanceof Map) return new Long(((Map)values).size());
 }
 static protected Long sum(Tuple input) throws ExecException, NumberFormatException {
 DataBag values = (DataBag)input.get(0);
 long sum = 0;
 for (Iterator (Tuple) it = values.iterator(); it.hasNext();) {
 Tuple t = it.next();
 sum += (Long)t.get(0);
 }
 return sum;
 }
}

文档

HadoopPigAlgebraicInterface

HadoopPigAlgebraicInterface:仔细看了一下hadoop pig 的udf 文档 在 Algebraic interface 设计上还是可以学习的。 一些聚合函数,如 SUM, COUNT 都得实现 Algebraic 接口 此接口要实现 三个方法,这三个方法都是返回具体实现的 class name 并且这些 class name都
推荐度:
标签: interface hadoop pig
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top