线程“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));