2017-09-16 12 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() 

この問題が発生した場合、誰でもこの問題があり、Jupiter Notebookでコンテキストを実行する方法を知っていますか?

答えて

0

だからではなく、あなたのjupyterノートの冒頭で

from pyspark import SparkContext 
sc = SparkContext.getOrCreate() 

を呼び出すことによって、(「作成」または)スパークコンテキストがすでに明らかにあなたが「取得」することができ、ランニング殺すためにどのようにすでに作成されたコンテキストを考え出します。

+0

'getOrCreate'は' SparkContext'ではなく 'SparkSession'で利用可能だと思います。 – 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

関連する問題