转换JavaPairDStream<;字符串,整数>;到JavaPairDStream<;整数,字符串>;,切换元组中的值(Java Spark)
我以为我能做到转换JavaPairDStream<;字符串,整数>;到JavaPairDStream<;整数,字符串>;,切换元组中的值(Java Spark),java,apache-spark,spark-streaming,Java,Apache Spark,Spark Streaming,我以为我能做到 final JavaPairDstream<String, Integer> y = ... ; final JavaPairDStream<Integer, String> x = y.mapToPair(item -> { return new JavaPairDStream<Integer, String>(item[1], item[0]); }); final
final JavaPairDstream<String, Integer> y = ... ;
final JavaPairDStream<Integer, String> x =
y.mapToPair(item -> {
return new JavaPairDStream<Integer, String>(item[1], item[0]);
});
final JavaPairDstream y=;
最终JavaPairdX流=
y、 mapToPair(项目->{
返回新的JavaPairDStream(项[1],项[0]);
});
但它给了我一个错误:
array required, but scala.Tuple2<java.lang.String,java.lang.Integer> found
需要数组,但找到scala.Tuple2
如何切换订单?您的函数返回了错误的类型。是
mapToPair
返回JavaPairDStream
,函数返回构成流的Tuple2
对象
因此,你的声明应该是:
final JavaPairDStream<Integer, String> x =
y.mapToPair(item -> new Tuple2<>(item._2, item._1));
final JavaPairDStream x=
y、 mapToPair(项目->新Tuple2(项目2,项目1));
显然你也可以
JavaPairDStream<Integer,String> swappedPair = wordCounts.mapToPair(x -> x.swap());
JavaPairDStream swappedPair=wordCounts.mapToPair(x->x.swap());