Преобразование JavaPairDStream <String, Integer> в JavaPairDStream <Integer, String>, переключение значений в кортеже (Java Spark) - PullRequest
0 голосов
/ 15 марта 2019

Я думал, что смогу просто сделать

final JavaPairDstream<String, Integer> y = ... ;

final JavaPairDStream<Integer, String> x =
                    y.mapToPair(item -> {
        return new JavaPairDStream<Integer, String>(item[1], item[0]);
    });

Но это выдает мне ошибку:

array required, but scala.Tuple2<java.lang.String,java.lang.Integer> found

Как я могу переключить заказ?

Ответы [ 2 ]

1 голос
/ 15 марта 2019

Ваша функция возвращает неправильный тип.Это mapToPair, которое возвращает JavaPairDStream<Integer, String>, ваша функция возвращает Tuple2<Integer, String> объекты, которые составляют поток.

Таким образом, ваше утверждение должно быть:

final JavaPairDStream<Integer, String> x = 
             y.mapToPair(item -> new Tuple2<>(item._2, item._1));
0 голосов
/ 15 марта 2019

Видимо, вы также можете сделать

JavaPairDStream<Integer,String> swappedPair = wordCounts.mapToPair(x -> x.swap());
...