线程“main”中的exceptionorg.apache.spark.SparkException:此JVM中只能运行一个SparkContext(参见SPARK-2243)
当我尝试使用cassandra运行spark应用程序时,我收到错误。
Exception in thread "main" org.apache.spark.SparkException: Only one SparkContext may be running in this JVM (see SPARK-2243).
我正在使用spark版本1.2.0,很明显我只在我的应用程序中使用了一个spark上下文。 但每当我尝试为流媒体目的添加以下代码时,我都会收到此错误。
JavaStreamingContext activitySummaryScheduler = new JavaStreamingContext( sparkConf, new Duration(1000));
您一次只能拥有一个SparkContext,并且由于StreamingContext中包含SparkContext,因此您无法在同一代码中拥有单独的Streaming和Spark Context。 你可以做的是从你的SparkContext构建一个StreamingContext,这样你就可以访问它们,如果你真的需要它。
使用此构造函数JavaStreamingContext(sparkContext: JavaSparkContext, batchDuration: Duration)
看看这里的第二个代码片段,在这里输入链接描述
这就是你的代码应该是这样的
import org.apache.spark.streaming.api.java.*; JavaSparkContext existingSparkContext = ... //existing JavaSparkContext JavaStreamingContext activitySummaryScheduler = new JavaStreamingContext(existingSparkContext, Durations.seconds(1000));