我正在研究Apache Spark的快速入门。我想知道集合转换的效率。我想知道如何改进以下代码:
SELECT * FROM tab1 WHERE amount < 0
还有其他方法可以更有效地完成同样的工作吗?我认为这段代码在输入数组上迭代两次(对于大型集合来说可能是一个问题)是吗?
答案 0 :(得分:0)
sliding
会创建Iterator,因此映射会“便宜”。虽然在.toArray
和sliding
之间,但您有一个多余的map
。它就够了
val windowedInputIt = input.
sliding(firstBigDivi,firstBigDivi) //First, a big division
.map(arr=>arr.sliding(windowDuration,windowStep).toArray)
然后,您可以通过编写
来将迭代器评估为数组val windowedInput = windowedInputIt.toArray