学习林子雨老师的pySpark慕课时,按照给的链接安装时,运行python3 ~/test.py程序发现了from py4j.protocol import Py4JError ModuleNotFoundError: No module named 'py4j'的错误了。
后来发现了在cd /usr/local/spark的工作目录,即
cd /usr/local/spark
vim ~/.bashrc
设置环境变量时是这样设置的
export JAVA_HOME=/usr/lib/jvm/default-java
export HADOOP_HOME=/usr/local/hadoop
export SPARK_HOME=/usr/local/spark
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH
export PYSPARK_PYTHON=python3
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PATH
其中第四行为export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH
而进入我们的 /usr/local/spark/python/lib 目录下输入 ls 会发现我们的版本号不对,我们的是
将上边的/usr/local/spark/bashrc里的环境路径改为如下
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH
然后在输入
cd /usr/local/spark
source ~/.bashrc
在运行 python3 ~/test.py时就没有错了。