Apache Spark:在PairFlatMapFunction中,如何将元组添加回Iterable <tuple2 <integer,string =“”>&gt;返回类型

时间:2016-12-12 00:58:50

标签: java hadoop apache-spark rdd bigdata

我是新来的火花。我一直在研究涉及两个数据集的代码。因此,我开始使用PairFlatMapFunction,我在其中处理映射器。

JavaPairRDD<Integer, String> trainingArray = trainingData.flatMapToPair(new PairFlatMapFunction<String, Integer, String>(){
        public Iterable<Tuple2<Integer, String>> call(String s) {
//code to form the tuples of type Tuple2<Integer, String>
// new Tuples2<Integer, String> 
}

如何将元组添加回可由reducer处理的iterable类(reduceByKey)。

任何指针都会非常感激。

2 个答案:

答案 0 :(得分:1)

谢谢!

我找到了这个问题的答案。

我们需要定义下面的ArrayList

List<Tuple2<Integer, String>> result = new ArrayList<Tuple2<Integer, String>>();

添加元组如下

result.add(new Tuple2<Integer, String>(keyValue, concat));

并返回结果。

答案 1 :(得分:0)

如果您的结果只包含一个元组,那么这可能是更好的选择。

return Collections.singletonList(new Tuple2<Integer, String>(keyValue, concat)).iterator();