1. ホーム
  2. apache-spark

[解決済み] Spark コンテキスト 'sc' が定義されていない

2022-02-06 07:39:52

質問

Sparkの初心者ですが、以下のサイトを参考にPySparkをインストールしようとしています。

http://ramhiser.com/2015/02/01/configuring-ipython-notebook-support-for-pyspark/

ビルド済みのパッケージと、SBTを使用してSparkパッケージをビルドしてインストールしようとしました。

IPython Notebookでpythonのコードを実行しようとすると、以下のエラーが発生します。

    NameError                                 Traceback (most recent call last)
   <ipython-input-1-f7aa330f6984> in <module>()
      1 # Check that Spark is working
----> 2 largeRange = sc.parallelize(xrange(100000))
      3 reduceTest = largeRange.reduce(lambda a, b: a + b)
      4 filterReduceTest = largeRange.filter(lambda x: x % 7 == 0).sum()
      5 

      NameError: name 'sc' is not defined

コマンドウィンドウで、以下のエラーが表示されます。

<strong>Failed to find Spark assembly JAR.</strong>
<strong>You need to build Spark before running this program.</strong>

を実行すると、scala のプロンプトが表示されることに注意してください。 スパークシェル コマンド

更新してください。

友人の助けにより、.ipython/profile_pyspark/startup/00-pyspark-setup.py ファイルの内容を修正することで、Spark assembly JAR に関する問題を修正することが出来ました。

これで、Spark Context変数の問題だけになりました。タイトルを変更し、現在の問題を適切に反映させます。

解決方法は?

一つの解決策は pyspark-shell をシェル環境変数PYSPARK_SUBMIT_ARGSに追加します。

export PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"

に変更があります。 python/pyspark/java_gateway.py PYSPARK_SUBMIT_ARGS が必要な場合は、以下のようになります。 pyspark-shell PYSPARK_SUBMIT_ARGS 変数がユーザによって設定された場合。