将 JavaPairDStream<String, Integer> 转换为 JavaPairDStream<Integer, String>,在元组中切换值(Java Spark)
Convert JavaPairDStream<String, Integer> to JavaPairDStream<Integer, String>, switching values in tuple (Java Spark)
我以为我可以做到
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
如何切换顺序?
您的函数返回了错误的类型。 mapToPair
returns 一个 JavaPairDStream<Integer, String>
,你的函数 returns Tuple2<Integer, String>
对象构成了流。
所以你的声明应该是:
final JavaPairDStream<Integer, String> x =
y.mapToPair(item -> new Tuple2<>(item._2, item._1));
显然你也可以做到
JavaPairDStream<Integer,String> swappedPair = wordCounts.mapToPair(x -> x.swap());
我以为我可以做到
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
如何切换顺序?
您的函数返回了错误的类型。 mapToPair
returns 一个 JavaPairDStream<Integer, String>
,你的函数 returns Tuple2<Integer, String>
对象构成了流。
所以你的声明应该是:
final JavaPairDStream<Integer, String> x =
y.mapToPair(item -> new Tuple2<>(item._2, item._1));
显然你也可以做到
JavaPairDStream<Integer,String> swappedPair = wordCounts.mapToPair(x -> x.swap());