在尝试设置和运行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
答案 0 :(得分:1)
似乎您有2种不同的pyspark安装。 pyspark正在使用/home/tom/.local/bin/pyspark
中的安装,而不是/usr/lib/spark/bin
中的安装。
可能是您手动安装在/usr/lib/spark
中,另一个是通过pip安装的。如要使用/usr/lib/spark
。请卸载一个点,将/usr/lib/spark/bin
添加到您的路径中,它应该可以工作
答案 1 :(得分:1)
当我将python代码组织到程序包/模块中并且从一个程序包导入到另一个程序包时,我遇到了这个错误。
如果我有一个没有任何软件包的简单脚本,<IncrementButton Increment="-1" @bind-Attribute="Amount"/>
<span>@Amount</span>
<IncrementButton Increment="1" @bind-Attribute="Amount"/>
<span>@bottomPillAmount</span>
@code {
private int amount;
[Parameter] public int Amount
{
get => amount;
set {
if(amount != value)
{
amount = value;
UpdateBottomPillText();
}
}
}
string bottomPillAmount;
string UpdateBottomPillText()
{
double amountAdded = Math.Floor(((double)(Amount - 10.0)) / 2.0);
bottomPillAmount = amountAdded > 0 ? "+" + amountAdded.ToString() : amountAdded.ToString();
return Amount.ToString();
}
protected override void OnParametersSet()
{
UpdateBottomPillText();
}
}
位于SPARK_HOME
中,并且等于os.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
作为管理员)