2017-02-24 191 views
0

我確定我們可以廣播變量的值,但我不知道如何在執行者之間傳播在驅動程序中創建的對象。我在我的Scala程序中爲第三方Java類創建一個對象。我想分享同一個類的實例給所有執行者,而不是創建多個對象。如何在Spark scala中的執行者之間廣播對象?

我發現廣播方法可以用來廣播變量的值。但我不知道這是否可以用於廣播對象。請發表您的建議

回答

0

有了廣播,您還可以廣播對象。請參閱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. 

廣播變量都應該是隻讀,所以你應該擔心它是相同的實例還是不同的。

+0

是的,我想知道「值」和「對象」是否有區別。我也沒有想過在分佈式系統上你可以共享一個「同類的實例」,因爲每個JVM都有它自己的實例。 – NikoNyrh