我安装了 Spark,但在将 pyspark 模块加载到 ipython 时遇到了问题。我收到以下错误:
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-2-49d7c4e178f8> in <module>
----> 1 import pyspark
/opt/spark/python/pyspark/__init__.py in <module>
44
45 from pyspark.conf import SparkConf
---> 46 from pyspark.context import SparkContext
47 from pyspark.rdd import RDD
48 from pyspark.files import SparkFiles
/opt/spark/python/pyspark/context.py in <module>
27 from tempfile import NamedTemporaryFile
28
---> 29 from py4j.protocol import Py4JError
30
31 from pyspark import accumulators
ModuleNotFoundError: No module named 'py4j'
如果可以直接运行spark,也许你需要修复环境变量
PYTHONPATH
。检查目录$SPARK_HOME/python/lib/
中的文件名。如果 Spark 版本为 2.4.3,则该文件为 py4j-0.10.7-src.zip
:
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.7-src.zip:$PYTHONPATH
在 Windows 上,尽管它应该可以工作并且在 PYTHONPATH 中使用通配符时 python 可以正确查找文件,但它无法打开该文件。
而不是
%SPARK_HOME%\python\lib\*.zip
我必须明确指定 zip 文件名才能使其正常工作。
我对 Spark 本身如何打开 pyspark.cmd shell 感到惊讶
spark\bin\pyspark2.cmd
他们指定完整路径的地方:
%SPARK_HOME%\python\lib\py4j-0.10.9.7-src.zip