【发布时间】:2017-08-26 13:16:12
【问题描述】:
在 Spark 1 中,我们可以使用以下代码创建 Spark 广播变量:
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);
我们如何在 Spark 2 中使用如下所示的 API 做同样的事情?
SparkSession sc = SparkSession.setappName("SparkApp").getorcreate();
sc.sparkcontext().broadcast(T value, scala.reflect.ClassTag<T> evidence$11)
【问题讨论】:
-
hi cricket_007...链接显示的是 Spark 1 类型...不是 Spark2 的 SparkSession
-
什么意思?你需要一个 SparkContext 来广播。您从 Spark 会话中获取上下文
-
顺便说一句,你复制了错误的函数。有一个参数,值...隐式参数可以忽略
broadcast[T](value: T)(implicit arg0: ClassTag[T]): Broadcast[T] -
@cricket_007...根据Java的spark api文档,我需要输入参数来创建广播变量..如下所示
广播 广播(T值,scala。 reflect.ClassTag evidence$11) 向集群广播一个只读变量,返回一个广播对象以便在分布式函数中读取它。
标签: java apache-spark-2.0