KeyError:' SPARK_HOME'在Google-Cloud-DataProc上的Jupyter的pyspark中

时间:2016-07-29 07:28:20

标签: pyspark jupyter google-cloud-dataproc

当试图显示SparkDF(测试)时,我得到一个KeyError,如下所示。我在Test.show(3)之前使用的函数可能出错了。

KeyError说:KeyError:' SPARK_HOME'。 我假设主人和/或工人没有定义SPARK_HOME。有没有办法可以在两者上自动指定SPARK_HOME目录?最好通过使用初始化操作。

Py4JJavaErrorTraceback(最近一次调用最后一次)      in()     ----> 1 Test.show(3)

/usr/lib/spark/python/pyspark/sql/dataframe.py in show(self, n, truncate)
    255         +---+-----+
    256         """
--> 257         print(self._jdf.showString(n, truncate))
    258 
    259     def __repr__(self):

...

    raise KeyError(key)
KeyError: 'SPARK_HOME'

1 个答案:

答案 0 :(得分:2)

您可以简单地将以下内容放在初始化操作中:

#!/bin/bash

cat << EOF | tee -a /etc/profile.d/custom_env.sh /etc/*bashrc >/dev/null
export SPARK_HOME=/usr/lib/spark/
EOF

您希望在jupyter安装操作之前放置该init操作,以确保在jupyter进程启动时它会出现。

编辑:要指定两个init操作,您可以将它们列在逗号分隔的列表中,不带空格,如下所示:

gcloud dataproc clusters create \
    --initialization-actions gs://mybucket/spark_home.sh,gs://mybucket/jupyter.sh ...