2017-08-26 7 views
0

我々は、Spark放送変数を作成するには、以下のコードを使用することができます:スパーク2(java)でブロードキャスト変数を作成する方法は?スパーク1では

SparkConf conf = new SparkConf(); 
conf.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer"); 

JavaSparkContext sc = new JavaSparkContext("local", "JavaAPISuite", conf); 

ArrayList<Strin'valuesg> sampleList = new ArrayList<String>(); 
sampleList.add("value"); 

final Broadcast<ArrayList<String> broadcastVar = sc.broadcast(sampleList); 

はどのように我々は、以下に示すAPIを使用してスパーク2で同じことを行うことができますか?例えば

SparkSession sc = SparkSession.setappName("SparkApp").getorcreate(); 
sc.sparkcontext().broadcast(T value, scala.reflect.ClassTag<T> evidence$11) 
+0

https://spark.apache.org/docs/latest/rdd-programming- guide.html#broadcast-variables –

+0

hi cricket_007 ...リンクにSpark 1タイプが表示されます... Spark2のSparkSessionではありません –

+0

どういう意味ですか?ブロードキャストするにはSparkContextが必要です。 Sparkセッションからコンテキストを取得します –

答えて

0

あなたはTestという名前のクラスをブロードキャストしたい場合には、java.io.Serializableを実装して、あなたが行う必要があります。

import scala.reflect.ClassTag; 

ClassTag<Test> classTagTest = scala.reflect.ClassTag$.MODULE$.apply(Test.class); 
Broadcast<Test> broadcastTest = sc.sparkcontext().broadcast(new Test(), classTagTest); 
+0

ありがとう@kofucii –

関連する問題