当试图显示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'
答案 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 ...