gpt4 book ai didi

java - 对 JavaDStream 进行排序 - Spark Streaming

转载 作者:行者123 更新时间:2023-11-30 06:48:17 27 4
gpt4 key购买 nike

我有一个使用 JavaDStreams 对象的应用程序。这是一段代码,我在其中计算单词出现的频率。

JavaPairDStream<String, Integer> wordCounts = words.mapToPair(
new PairFunction<String, String, Integer>() {
@Override
public Tuple2<String, Integer> call(String s) {
return new Tuple2<>(s, 1);
}
}).reduceByKey(new Function2<Integer, Integer, Integer>() {
@Override
public Integer call(Integer i1, Integer i2) {
return i1 + i2;
}
});

现在,如果我想打印前 N 个频繁出现的元素,并按整数值排序,如果没有像 sortByKey 这样的方法,我该怎么做呢? (对于 JavaPairRDD)?

最佳答案

因为你有 JavaPairDStream<String, Integer>并想按整数值排序,您必须先交换对。

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

现在您可以使用 transformToPair 进行排序并使用 sortByKey功能。

JavaPairDStream<Integer,String> sortedStream = swappedPair.transformToPair(
new Function<JavaPairRDD<Integer,String>, JavaPairRDD<Integer,String>>() {
@Override
public JavaPairRDD<Integer,String> call(JavaPairRDD<Integer,String> jPairRDD) throws Exception {
return jPairRDD.sortByKey(false);
}
});

sortedStream.print();

关于java - 对 JavaDStream 进行排序 - Spark Streaming,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44475215/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com