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/

10-16 07:39