亚马逊EC2上的Apache Spark PYTHONPATH麻烦

时间:2015-08-05 06:26:19

标签: python amazon-ec2 apache-spark

我需要在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?

2 个答案:

答案 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作业的页面:

https://www.continuum.io/blog/developer-blog/using-anaconda-pyspark-distributed-language-processing-hadoop-cluster

例如(为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