4

Spark の使い方を学んでいます。私は今までこの記事に従っていました。pyspark をインポートしようとすると、次のエラーが発生します。pyspark には accumulators.py ファイルがあります。

>>> import os
>>> import sys
>>> os.environ['SPARK_HOME'] = "E:\\spark-1.2.0"
>>> sys.path.append("E:\\spark-1.2.0\\python")
>>> from pyspark import SparkContext
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "E:\spark-1.2.0\python\pyspark\__init__.py", line 41, in <module>
    from pyspark.context import SparkContext
  File "E:\spark-1.2.0\python\pyspark\context.py", line 30, in <module>
    from pyspark.java_gateway import launch_gateway
  File "E:\spark-1.2.0\python\pyspark\java_gateway.py", line 26, in <module>
    from py4j.java_gateway import java_import, JavaGateway, GatewayClient
ImportError: No module named py4j.java_gateway
>>> sys.path.append("E:\\spark-1.2.0\\python\\build")
>>> from pyspark import SparkContext
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "E:\spark-1.2.0\python\pyspark\__init__.py", line 41, in <module>
    from pyspark.context import SparkContext
  File "E:\spark-1.2.0\python\pyspark\context.py", line 25, in <module>
    from pyspark import accumulators
ImportError: cannot import name accumulators

このエラーを解決するにはどうすればよいですか? 私は使用しますwindows 7 and java-8。パイソンのバージョンはPython 2.7.6 :: Anaconda 1.9.2 (64-bit)

4

2 に答える 2

2

同じ記事に従って同じ問題に遭遇し、00-pyspark-setup.py スクリプトを変更して SPARK_HOME/python/lib パスを SPARK_HOME/python の代わりに python の sys.path に直接追加することで修正できました。

私の完全な 00-pyspark-startup.py スクリプトは次のようになりました。

import os
import sys

# Configure the environment
#if 'SPARK_HOME' not in os.environ:
#    os.environ['SPARK_HOME'] = '/srv/spark'

# Create a variable for our root path
SPARK_HOME = os.environ['SPARK_HOME']

# Add the PySpark/py4j to the Python Path
sys.path.insert(0, os.path.join(SPARK_HOME, "python", "lib"))
sys.path.insert(0, os.path.join(SPARK_HOME, "python"))
于 2016-02-15T15:10:12.783 に答える
0

PYTHONPATH に E:\spark-1.2.0\python\lib\py4j-0.8.2.1-src.zip を追加してみてください

于 2015-02-09T20:32:35.110 に答える