apachespark使用javalambda重构键值对
我使用ApacheSpark,我有一个键值对,它的值是ArrayList,我想将ArrayList中的一个值移到key.Position,然后将键移回ArrayList。有没有办法用lambda表达式实现这一点 在Python中,它是这样的apachespark使用javalambda重构键值对,java,lambda,apache-spark,Java,Lambda,Apache Spark,我使用ApacheSpark,我有一个键值对,它的值是ArrayList,我想将ArrayList中的一个值移到key.Position,然后将键移回ArrayList。有没有办法用lambda表达式实现这一点 在Python中,它是这样的 newMap = sourceMap.map(lambda (key,((value1, value2), value3)) : (value1, (key, value2,value3))) 如何在Java中使用lambdas实现这一点?sourceMa
newMap = sourceMap.map(lambda (key,((value1, value2), value3)) : (value1, (key, value2,value3)))
如何在Java中使用lambdas实现这一点?sourceMap与newMap的类型相同
JavaPairRDD<String, ArrayList<String> newMap = sourceMap.flatMapToPair((a, b) -> ??? )
javapairdd??)
这是我的解决方案
JavaPairRDD<String, ArrayList<String>> newRDD = source.mapToPair( lines -> {
ArrayList<String> values = new ArrayList<String>();
// restructure
values.add(lines._1());
values.add(lines._2()._1().get(0));
values.add(lines._2()._1().get(2));
values.add(lines._2()._2());
Tuple2<String, ArrayList<String>> tuple = new Tuple2<>(lines._2()._1().get(1), values);
return tuple;
});
javapairdd newRDD=source.mapToPair(行->{
ArrayList值=新的ArrayList();
//重组
添加(行._1());
添加(行._2()._1().get(0));
添加(行._2()._1().获取(2));
添加(行._2()._2());
Tuple2 tuple=新的Tuple2(行._2()._1().get(1),值);
返回元组;
});