pyspark ImportError:无法导入名称累加器

Don*_*tal 5 python pycharm apache-spark

目标:我想在我的pycharm IDE中对apache-spark pyspark进行适当的解释.

问题:我目前收到以下错误:

ImportError: cannot import name accumulators
Run Code Online (Sandbox Code Playgroud)

我正在关注以下博客来帮助我完成整个过程.http://renien.github.io/blog/accessing-pyspark-pycharm/

由于我的代码采用了except路径,我亲自摆脱了尝试:除了:只是为了看看确切的错误是什么.

在此之前,我收到以下错误:

ImportError: No module named py4j.java_gateway
Run Code Online (Sandbox Code Playgroud)

只需在bash中输入'$ sudo pip install py4j'即可修复此问题.

我的代码目前看起来像下面的块:

import os
import sys

# Path for spark source folder
os.environ['SPARK_HOME']="[MY_HOME_DIR]/spark-1.2.0"

# Append pyspark to Python Path
sys.path.append("[MY_HOME_DIR]/spark-1.2.0/python/")

try:
    from pyspark import SparkContext
    print ("Successfully imported Spark Modules")

except ImportError as e:
    print ("Can not import Spark Modules", e)
    sys.exit(1)
Run Code Online (Sandbox Code Playgroud)

我的问题:
1.这个错误的来源是什么?原因是什么?2.如何解决问题,以便在pycharm编辑器中运行pyspark.

注意:我在pycharm中使用的当前解释器是Python 2.7.8(〜/ anaconda/bin/python)

提前谢谢!

小智 7

它位于变量PYTHONPATH周围,它指定python模块搜索路径.

因为大多数pyspark运行良好,你可以参考shell脚本pyspark,并看到PYTHONPATH设置如下所示.

PYTHONPATH =/usr/lib中/火花/蟒/ LIB/py4j-0.8.2.1-src.zip:/ usr/lib中/火花/蟒.

我的环境是Cloudera Qickstart VM 5.3.

希望这可以帮助.


小智 1

首先,设置你的环境变量

export SPARK_HOME=/home/.../Spark/spark-2.0.1-bin-hadoop2.7
export PYTHONPATH=$SPARK_HOME/python/:$SPARK_HOME/python/lib/py4j-0.10.3-src.zip:$PYTHONPATH
PATH="$PATH:$JAVA_HOME/bin:$SPARK_HOME/bin:$PYTHONPATH"
Run Code Online (Sandbox Code Playgroud)

确保您使用自己的版本名称

然后,重新启动!验证您的设置很重要。