【发布时间】:2019-03-26 09:54:02
【问题描述】:
假设我有一个对象,我需要对这个对象的成员进行一些操作:arr。
object A {
val arr = (0 to 1000000).toList
def main(args: Array[String]): Unit = {
//...init spark context
val rdd: RDD[Int] = ...
rdd.map(arr.contains(_)).saveAsTextFile...
}
}
广播arr和不广播有什么区别?
即
val arrBr = sc.broadcast(arr)
rdd.map(arrBr.value.contains(_))
和
rdd.map(arr.contains(_))
在我看来,对象A是一个单例对象,所以它会通过Spark中的节点传递。
这种情况下是否需要使用广播?
【问题讨论】: