将列表排序为JavaRDD上collect的输出

时间:2017-04-24 04:23:54

标签: java apache-spark

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

request.form['postPass']

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

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

1 个答案:

答案 0 :(得分:1)

我相信您正在寻找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的{​​{1}}副本:

javaAlarmedTimeStamps