Scala:两个滑动效率更高

时间:2017-11-21 19:51:15

标签: scala

我正在研究Apache Spark的快速入门。我想知道集合转换的效率。我想知道如何改进以下代码:

SELECT * FROM tab1 WHERE amount < 0

还有其他方法可以更有效地完成同样的工作吗?我认为这段代码在输入数组上迭代两次(对于大型集合来说可能是一个问题)是吗?

1 个答案:

答案 0 :(得分:0)

sliding会创建Iterator,因此映射会“便宜”。虽然在.toArraysliding之间,但您有一个多余的map。它就够了

val windowedInputIt = input.
sliding(firstBigDivi,firstBigDivi) //First, a big division
.map(arr=>arr.sliding(windowDuration,windowStep).toArray)

然后,您可以通过编写

来将迭代器评估为数组
val windowedInput = windowedInputIt.toArray