当尝试显示 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/