gpt4 book ai didi

scala - 在 Spark 流中使用过滤器转换后,如何在函数中返回两个 DStream?

转载 作者:行者123 更新时间:2023-12-01 14:09:57 26 4
gpt4 key购买 nike

在函数中,有没有办法在使用 filter 后返回两个 DStream?例如,当我过滤一个DStream时,过滤后的将存储在一个DStream中,未过滤的将存储在另一个DStream中。

最佳答案

如果它是内置的,这可以更有效地完成,但是

def partition[A](stream: DStream[A])(pred: A => Boolean) {
val stream1 = stream.map(x => (x, pred(x)).cache()
val good = stream1.filter(_._2).map(_._1)
val bad = stream1.filter(!_._2).map(_._1)
(good, bad)
}

注意 cache() 是为了确保 stream1 只被计算一次;如果 pred 足够简单,并且 stream 已经缓存,只需 (stream.filter(pred), stream.filter(x => !pred(x) )) 应该更快。

关于scala - 在 Spark 流中使用过滤器转换后,如何在函数中返回两个 DStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36770628/

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