pyspark - key 错误 : 'SPARK_HOME' in pyspark on Jupyter on Google-Cloud-DataProc

标签 pyspark jupyter google-cloud-dataproc

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

KeyError 表示:KeyError:“SPARK_HOME”。 我假设 SPARK_HOME 没有在主控和/或工作线程上定义。有没有办法可以在两者上自动指定 SPARK_HOME 目录?最好使用初始化操作。

Py4JJavaErrorTraceback(最近一次调用最后一次) 在 () ----> 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'

最佳答案

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

#!/bin/bash

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

您需要将该 init 操作放在 jupyter 安装操作之前,以确保它在 jupyter 进程启动时存在。

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

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

关于pyspark - key 错误 : 'SPARK_HOME' in pyspark on Jupyter on Google-Cloud-DataProc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38652940/

相关文章:

apache-spark - 在 Pyspark 中使用 maxBytesPerTrigger 的正确方法是什么?

apache-spark - 我可以以编程方式运行Zeppelin笔记本吗?

hadoop - Spark : How to start remotely Jupyter in 'yarn_client' mode from a different user

python - ipysheets修改布局: wrap text,列宽

apache-spark - 在Dataproc中将spark.master更改为yarn

python - 如何在每个 Spark 执行器中加载无法 pickle 的数据?

apache-spark - 如何更改pyspark中的列元数据?

ipython - 如何(可以)在Jupyter笔记本下使用custom.js文件?

python - 在没有互联网连接的情况下使用 plotly

google-cloud-platform - 获取/bin/bash^M : bad interpreter: No such file or directory after running initialisation script on Dataproc