Java中new function另外新建个文件的写法

Flink官网看到这么个例子:

DataSet<WC> words = // [...]
DataSet<WC> wordCounts = words
                         // DataSet grouping on field "word"
                         .groupBy("word")
                         // apply ReduceFunction on grouped DataSet
                         .reduce(new WordCounter());

第一种分开写WordCounter.java的办法:

import org.apache.flink.api.common.functions.ReduceFunction;
public class WordCounter implements ReduceFunction<WC> {
    @Override
    public WC reduce(WC in1, WC in2) {
        return new WC(in1.word, in1.count + in2.count);
    }
}

 

第二种办法:

原始代码:

JavaPairRDD<Long, Long> removedRandomPrefixRdd = localAggrRdd.mapToPair(
        new PairFunction<Tuple2<String,Long>, Long, Long>() {
            private static final long serialVersionUID = 1L;
            @Override
            public Tuple2<Long, Long> call(Tuple2<String, Long> tuple)
                    throws Exception {
                long originalKey = Long.valueOf(tuple._1.split("_")[1]);
                return new Tuple2<Long, Long>(originalKey, tuple._2);
            }
        });

修改后的代码:

private static PairFunction <Tuple2<String,Long>, Long, Long> func3=new PairFunction<Tuple2<String,Long>, Long, Long>()
{
    private static final long serialVersionUID = 1L;
//    @Override
    public Tuple2<Long, Long> call(Tuple2<String, Long> tuple)throws Exception
    {
        long originalKey;
        originalKey = Long.valueOf(tuple._1.split("_")[1]);
        return new Tuple2<Long, Long>(originalKey, tuple._2);
    }
};

// 第三步,去除RDD中每个key的随机前缀。
        JavaPairRDD<Long, Long> removedRandomPrefixRdd = localAggrRdd.mapToPair(func3);

修改办法:

new PairFunction<Tuple2<String,Long>, Long, Long>()

改成:

private static PairFunction <Tuple2<String,Long>, Long, Long> func3=new PairFunction<Tuple2<String,Long>, Long, Long>()

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值