【问题标题】:Apache Spark on Amazon EC2 PYTHONPATH troubleAmazon EC2 PYTHONPATH 上的 Apache Spark 问题
【发布时间】:2016-10-27 22:16:43
【问题描述】:

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

【问题讨论】:

  • Joe 的回答 +1,我不会对你的问题使用 -1,但很高兴知道这是否有效,以改进 SO。另外,我不能只编辑一个字符,但它是 Google 的“Apache”而不是“Apace”哈哈 :) 这个问题在 Google 的搜索结果中显示得非常高,如果您删除它或完成它会有所帮助吗?

标签: python amazon-ec2 apache-spark


【解决方案1】:

你可以试试设置

export PYTHONPATH=$PYTHONPATH:/usr/local/lib64/python2.7/site-packages

在 $SPARK_CONF_DIR/spark-env.sh 中?

【讨论】:

  • 如果 OP 能做出回应,这个答案的同上会很好,这肯定是问题所在,也是正确的答案!
【解决方案2】:

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 一起使用,您可以使用 spark-submit 命令为每个作业设置 PYSPARK_PYTHON 环境变量。如果您将 Anaconda 包裹用于 CDH,则可以使用以下命令运行 PySpark 脚本(例如 spark-job.py):

$ PYSPARK_PYTHON=/opt/cloudera/parcels/Anaconda/bin/python spark-submit spark-job.py

【讨论】:

  • 仔细观察,我认为 Cloudera 有错字?或者这是一种形成命令的有趣方式。我通常会在两行输入PYSPARK_PYTHON=/opt/cloudera/parcels/Anaconda/bin/pythonspark-submit spark-job.py ,或者用; 分隔。但它有效!使用 UNIX/Linux 20 年,每天都在学习新东西!我试过PYSPARK_PYTHON=/opt/cloudera/parcels/Anaconda/bin/python spark-submit spark-job.py ls -l 并且它有效。
猜你喜欢
  • 1970-01-01
  • 2012-03-22
  • 2011-07-27
  • 2015-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多