【问题标题】:KeyError: 'SPARK_HOME' in pyspark on Jupyter on Google-Cloud-DataProcKeyError:Google-Cloud-DataProc 上 Jupyter 上 pyspark 中的“SPARK_HOME”
【发布时间】:2016-07-29 07:28:19
【问题描述】:

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

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

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

【问题讨论】:

    标签: pyspark jupyter google-cloud-dataproc


    【解决方案1】:

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

    #!/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 ...
    

    【讨论】:

    • 添加初始化动作并没有解决问题。我尝试将上面的代码放在 jupyter init 操作中(没有 hashbang),并且在 jupyter init 操作之前作为单独的 init 操作。
    • 按照您的建议,我创建了一个包含上述内容的 bash 脚本 (spark_home.sh)。即使将此包含在初始化操作中,我也会收到 spark home 错误。 gcloud dataproc clusters create cluster --zone=europe-west1-d --master-machine-type n1-standard-4 --master-boot-disk-size 100 --num-workers 2 --worker-machine-type n1-standard-2 --worker-boot-disk-size 50 --project myproject --bucket mybucket --initialization-actions gs://stijnbucket/sh/spark_home.sh --initialization-actions gs://stijnbucket/sh/jupyter.sh
    • 使用该初始化操作后,如果您通过 SSH 连接到主节点并输入 echo ${SPARK_HOME},是否至少对于登录的情况显示为正确设置?
    • 对不起,我不小心在逗号后面留了一个空格;在传递以逗号分隔的初始化操作列表时,您是否尝试在逗号后不加空格?
    • 不客气,感谢您验证它是否有效!更新了答案以添加传递逗号分隔列表的示例。
    猜你喜欢
    • 1970-01-01
    • 2018-07-05
    • 2018-10-08
    • 2019-06-12
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 2016-10-31
    • 2018-01-01
    相关资源
    最近更新 更多