【问题标题】:How to broadcast Objects across executors in Spark scala?如何在 Spark scala 中跨执行程序广播对象?
【发布时间】:2017-02-24 13:52:16
【问题描述】:

我确信我们可以广播变量的值,但我不确定如何跨执行程序广播在驱动程序中创建的对象。我正在为我的 Scala 程序中的第三方 Java 类创建一个对象。我想将类的同一个实例共享给所有执行者,而不是创建多个对象。

我发现广播方法可以用来广播变量的值。但我不知道这是否可以用于广播对象。请发表您的建议

【问题讨论】:

    标签: apache-spark broadcast executors


    【解决方案1】:

    通过广播,您也可以广播对象。请参阅广播 API

    broadcast[T](value: T)(implicit arg0: ClassTag[T]): Broadcast[T]
    Broadcast a read-only variable to the cluster, returning a     org.apache.spark.broadcast.Broadcast object for reading it in distributed functions.
    

    广播变量应该是只读的,所以你应该担心它是同一个实例还是不同的实例。

    【讨论】:

    • 是的,我想知道“值”和“对象”之间是否存在差异。另外我不认为在分布式系统上你可以共享一个“类的相同实例”,因为每个 JVM 都有自己的实例。
    猜你喜欢
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多