I thought I could just do
final JavaPairDstream<String, Integer> y = ... ;
final JavaPairDStream<Integer, String> x =
y.mapToPair(item -> {
return new JavaPairDStream<Integer, String>(item[1], item[0]);
});
But it gives me the error:
array required, but scala.Tuple2<java.lang.String,java.lang.Integer> found
How can I switch the order?
Your function is returning the wrong type. It's mapToPair
that returns a JavaPairDStream<Integer, String>
, your function returns Tuple2<Integer, String>
objects that make the stream.
So your statement should be:
final JavaPairDStream<Integer, String> x =
y.mapToPair(item -> new Tuple2<>(item._2, item._1));