【PySpark】啓動SparkContext報錯--Cannot run multiple SparkContexts at once; existing SparkContext(...)

        在學習和使用PySpark之初,可能都會遇到這個報錯:

看下場景:

場景一:

創建SparkContext的最基本方法,只需要傳遞兩個參數:
(1)集羣URL:告訴Spark如何連接到集羣上,使用local可以讓spark運行在單機單線程上。
(2)應用名:使用"monter",當連接到一個集羣時,這個值可以在集羣管理器的用戶界面中找到你的應用。 

from pyspark import SparkConf, SparkContext
spark = SparkConf().setMaster("local").setAppName("monter")
sc = SparkContext(conf = spark)

報錯:出現這個錯誤是因爲之前已經啓動了SparkContext,所以需要先關閉spark,然後再啓動。

 解決方法:

sc.stop()    // 關閉spark
sc = SparkContext(conf = spark)

場景二:

spark_1 = SparkSession.builder \
      .master("local") \
      .appName("monter") \
      .enableHiveSupport() \
      .getOrCreate()


spark_2 = SparkConf().setMaster("local").setAppName("monter")
sc = SparkContext(conf = spark_2)

報錯:其實報錯原因和第一種類似,都是已經存在了,不能再建

解決方案:

spark_1.stop()

from pyspark import SparkConf, SparkContext
spark_2 = SparkConf().setMaster("local").setAppName("monter")
sc = SparkContext(conf = spark_2)

        總而言之,只能啓動一個,不能重複啓動。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章