gpt4 book ai didi

java - 对列表进行排序作为 JavaRDD 上收集的输出

转载 作者:行者123 更新时间:2023-11-30 06:46:38 24 4
gpt4 key购买 nike

我正在收集一个 RDD,需要使用以下代码在 Spark Java API 中对其进行排序:

List<Long> alarmedTimeStamps=sensorDataDoubleDF.toJavaRDD().filter(filterAlarmNode).filter(filterAlarmInstances).map(row->row.getLong(2)).collect();
System.out.println("The type of collection is :"+alarmedTimeStamps.getClass().getTypeName());


ArrayList<Long> javaAlarmedTimeStamps=new ArrayList();
for(Long item:alarmedTimeStamps)
javaAlarmedTimeStamps.add(item);

//sort the TTS points
Collections.sort(javaAlarmedTimeStamps);

集合的类型是:scala.collection.convert.Wrappers$SeqWrapper

我在这段代码中使用了手动转换,但我想知道是否有更好的方法。

最佳答案

我相信您正在寻找sortBy方法。

您的代码可以转换为:

List<Long> javaAlarmedTimeStamps = sensorDataDoubleDF
.toJavaRDD()
.filter(filterAlarmNode)
.filter(filterAlarmInstances)
.map(row->row.getLong(2))
.sortBy(x->x,true,1) //you could also replace the previous `map` with sortBy(row->row.getLong(2),true,1)
.collect();

顺便说一句,在您的代码中,您无法直接对 alarmedTimeStamps 进行排序的原因是因为它是 immutable 。但是,您可以比您更轻松地初始化 alarmedTimeStamps 副本(称为 javaAlarmedTimeStamps):

List<Long> javaAlarmedTimeStamps = new ArrayList<>(alarmedTimeStamps);

关于java - 对列表进行排序作为 JavaRDD 上收集的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43579786/

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