在學習和使用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)
總而言之,只能啓動一個,不能重複啓動。