【问题标题】:pyspark Could not find valid SPARK_HOMEpyspark 找不到有效的 SPARK_HOME
【发布时间】:2019-04-08 09:16:40
【问题描述】:

在尝试设置和运行 pyspark 时,我收到以下错误:

tom@tom-OptiPlex-3060:~$ pyspark
Could not find valid SPARK_HOME while searching ['/home', '/home/tom/.local/bin']
/home/tom/.local/bin/pyspark: line 24: /bin/load-spark-env.sh: No such file or directory
/home/tom/.local/bin/pyspark: line 77: /bin/spark-submit: No such file or directory

但是如果我进入目录/usr/lib/spark/bin - pyspark 工作

我在这里错过了什么?

export JAVA_HOME=/usr/lib/jvm/java-8-oracle  
export SBT_HOME=/usr/share/sbt-launcher-packaging/bin/sbt-launch.jar  
export SPARK_HOME=/usr/lib/spark
export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:$SBT_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
export PYSPARK_PYTHON=python2.7
export PYTHONPATH=$SPARK_HOME/python:$PYTHONPATH

【问题讨论】:

  • 显然它忽略了您的环境。您是否通过 pip 安装了pyspark?在什么时候设置变量?
  • 我也尝试过通过 pip 安装 pyspark。

标签: ubuntu pyspark environment-variables


【解决方案1】:

当我将我的 python 代码组织成包/模块以及从一个包导入另一个包时,我遇到了这个错误。

如果我有没有任何包的简单脚本 SPARK_HOMEos.environ 中并且等于 /usr/hdp/current/spark2-client(您的值可以不同,只需 print(os.environ['SPARK_HOME'] 知道)。

在失败的有问题的函数/包中简单地设置这个变量没有帮助:

import os
os.environ['SPARK_HOME'] = '/usr/hdp/current/spark2-client'

在我的情况下,我通过将此参数传递给 spark-submit 来解决它:

--conf spark.yarn.appMasterEnv.SPARK_HOME=/usr/hdp/current/spark2-client

(可以提供帮助的其他信息:我使用 yarn 作为主人)

【讨论】:

    【解决方案2】:

    您似乎有 2 个不同的 pyspark 安装。 pyspark 正在使用/home/tom/.local/bin/pyspark 中的安装,而不是/usr/lib/spark/bin 中的安装。

    可能您在/usr/lib/spark 中手动安装,另一个通过 pip 安装。正如你想使用/usr/lib/spark。请卸载 pip 之一,将/usr/lib/spark/bin 添加到您的路径中,它应该可以工作

    【讨论】:

      猜你喜欢
      • 2018-09-17
      • 1970-01-01
      • 2018-07-05
      • 1970-01-01
      • 2022-06-12
      • 1970-01-01
      • 2018-10-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多