【发布时间】:2014-12-19 10:06:10
【问题描述】:
我安装了 Spark,运行了 sbt 程序集,并且可以毫无问题地打开 bin/pyspark。但是,我在将 pyspark 模块加载到 ipython 时遇到了问题。我收到以下错误:
In [1]: import pyspark
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-c15ae3402d12> in <module>()
----> 1 import pyspark
/usr/local/spark/python/pyspark/__init__.py in <module>()
61
62 from pyspark.conf import SparkConf
---> 63 from pyspark.context import SparkContext
64 from pyspark.sql import SQLContext
65 from pyspark.rdd import RDD
/usr/local/spark/python/pyspark/context.py in <module>()
28 from pyspark.conf import SparkConf
29 from pyspark.files import SparkFiles
---> 30 from pyspark.java_gateway import launch_gateway
31 from pyspark.serializers import PickleSerializer, BatchedSerializer, UTF8Deserializer, \
32 PairDeserializer, CompressedSerializer
/usr/local/spark/python/pyspark/java_gateway.py in <module>()
24 from subprocess import Popen, PIPE
25 from threading import Thread
---> 26 from py4j.java_gateway import java_import, JavaGateway, GatewayClient
27
28
ImportError: No module named py4j.java_gateway
【问题讨论】:
-
我不知道这是否是一个真正的答案,但
sudo pip install py4j为我解决了这个问题。我假设此错误是在您已将 SPARK_HOME 添加到 PYTHON_PATH 之后出现的? -
我提供了相同(或类似问题)的答案。我可能对你有帮助:stackoverflow.com/questions/24249847/…
-
我还将我的
PYTHONPATH设置为指向所有需要的python 依赖项,但得到了同样的错误。为了解决这个问题,我还必须 1)在安装了常用 python 包的site-packages文件夹中安装另一个 py4j 副本 2)更改 py4j 文件夹中所有内容的权限,以便 YARN 执行程序节点可以读取/执行相关文件.
标签: python python-2.7 apache-spark ipython py4j