2017-09-16 34 views
0

一直試圖爲pyspark v2.1.1運行Jupyter Notebook設置,但每次嘗試實例化上下文時(剛剛重新啓動的內核和derby.log文件以及metastore_db目錄都被刪除) ,我得到以下錯誤告訴我一個上下文已經在運行。殺死一個SparkContext,我可以創建一個新的

ValueError: Cannot run multiple SparkContexts at once; 
existing SparkContext(app=PySparkShell, master=local[16]) created by 
<module> at /home/ubuntu/anaconda2/lib/python2.7/site-packages/IPython/utils/py3compat.py:289 

我試着重新啓動內核和刪除的derby.log,也試圖通過應用程序名稱來加載背景和掌握它給出了錯誤,然後停止上下文無濟於事:

sc = SparkContext(app='PySparkShell', master='local[16]') 
sc.stop() 

有沒有人有這個問題,並知道如何才能得到在Jupyter筆記本上運行的上下文時,這種情況發生?

回答

0

因此,而不是通過調用

from pyspark import SparkContext 
sc = SparkContext.getOrCreate() 

你jupyter筆記本開始盤算着如何殺死星火語境已經在運行,顯然你可以「獲得」(或「製造」)已創建的上下文。

+0

我認爲'getOrCreate'可用於'SparkSession'而不是'SparkContext' – philantrovert

+0

我認爲相同,但嘗試過它,它適用於我的基於RDD的ALS模型。也許這是自v2.1.1以來的新事物? – geominded

+1

我錯了,它一直在那裏:https://github.com/apache/spark/blob/master/core/src/main/scala/org/apache/spark/SparkContext.scala#L2506 – philantrovert

相關問題