2017-02-24 8 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

関連する問題