Dstream 提供两种类型的 union
:
StreamingContext.union(Dstreams)
Dstream.union(anotherDstream)
所以我想知道有什么不同,特别是在并行性能方面。
最佳答案
查看这两个操作的源代码,除了一个以单个 DStream
作为输入,另一个以列表作为输入之外,没有其他区别。
StreamingContext :
def union[T: ClassTag](streams: Seq[DStream[T]]): DStream[T] = withScope {
new UnionDStream[T](streams.toArray)
}
Dstream :
def union(that: DStream[T]): DStream[T] = ssc.withScope {
new UnionDStream[T](Array(this, that))
}
因此,您使用哪一种取决于您的偏好,没有性能提升。当您有要合并的流列表时,
StreamingConext
中的方法会稍微简化代码,因此,在这种情况下可能更可取。关于performance - Spark Streaming中两种类型的联合有什么不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45953807/