我需要在Amazon EC2上运行Apace Spark脚本。脚本使用这样的库,如numpy,pandas等。麻烦的是我安装了numpy
/usr/local/lib64/python2.7/site-packages
,默认情况下此文件夹不在PYTHONPATH中。所以当我export PYTHONPATH=$PYTHONPATH:/usr/local/lib64/python2.7/site-packages
时,通常的python检测到它(import numpy
没有问题),但是当我试图在pyspark shell中导入它时 - 它显示:
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named numpy
>>> exit()
有没有解决方法如何更改pyspark的PYTHONPATH?
答案 0 :(得分:1)
您可以尝试设置
export PYTHONPATH=$PYTHONPATH:/usr/local/lib64/python2.7/site-packages
$ SPARK_CONF_DIR / spark-env.sh?
答案 1 :(得分:1)
Joe Young's answer会很好。如果要基于每个作业进行设置,Continuum(Anaconda人)有关于在命令行上按作业设置PYTHONPATH作业的页面:
例如(为Cloudera安装代替您的Spark位置编写):
使用您的Hadoop群集配置spark-submit命令
要使用Anaconda的Python和PySpark,您可以在每个作业的基础上设置PYSPARK_PYTHON环境变量以及spark-submit命令。如果您使用Anaconda parcel进行CDH,可以使用以下命令运行PySpark脚本(例如spark-job.py):
$ PYSPARK_PYTHON=/opt/cloudera/parcels/Anaconda/bin/python spark-submit spark-job.py