python - key 错误 : SPARK_HOME during SparkConf initialization

标签 python apache-spark pyspark

我是 spark 新手,我想从命令行运行 Python 脚本。我已经交互式地测试了 pyspark 并且它有效。尝试创建 sc 时出现此错误:

File "test.py", line 10, in <module>
    conf=(SparkConf().setMaster('local').setAppName('a').setSparkHome('/home/dirk/spark-1.4.1-bin-hadoop2.6/bin'))
  File "/home/dirk/spark-1.4.1-bin-hadoop2.6/python/pyspark/conf.py", line 104, in __init__
    SparkContext._ensure_initialized()
  File "/home/dirk/spark-1.4.1-bin-hadoop2.6/python/pyspark/context.py", line 229, in _ensure_initialized
    SparkContext._gateway = gateway or launch_gateway()
  File "/home/dirk/spark-1.4.1-bin-hadoop2.6/python/pyspark/java_gateway.py", line 48, in launch_gateway
    SPARK_HOME = os.environ["SPARK_HOME"]
  File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'SPARK_HOME'

最佳答案

这里好像有两个问题。

第一个是您使用的路径。 SPARK_HOME 应该指向 Spark 安装的根目录,所以在你的情况下它应该是 /home/dirk/spark-1.4.1-bin-hadoop2.6 而不是/home/dirk/spark-1.4.1-bin-hadoop2.6/bin.

第二个问题是如何使用 setSparkHome。如果你检查 a docstring它的目标是

set path where Spark is installed on worker nodes

SparkConf 构造函数假定 master 上的 SPARK_HOME 已经设置。 It calls pyspark.context.SparkContext._ensure_initialized which calls pyspark.java_gateway.launch_gatewaywhich tries to acccess SPARK_HOME 失败。

要解决这个问题,您应该在创建 SparkConf 之前设置 SPARK_HOME

import os
os.environ["SPARK_HOME"] = "/home/dirk/spark-1.4.1-bin-hadoop2.6"
conf = (SparkConf().setMaster('local').setAppName('a'))

关于python - key 错误 : SPARK_HOME during SparkConf initialization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31566250/

相关文章:

python - 名称错误 : global name 'NoneType' is not defined in Spark

python - 计算存储桶S3中所有文件的大小

scala - 如何在 Spark SQL 中定义和使用用户定义的聚合函数?

python - 不选择缺失值吗?

scala - Apache Spark 当每个键的所有记录的大小大于单个分区的大小时调用重新分区($"key")会发生什么?

apache-spark - Apache Spark ALS 建议评级值高于范围

python - 使用一个命令在 Spark 中进行不同和求和聚合

apache-spark - 计算 pyspark Dataframe 中的列数?

python - 如何根据行索引的条件删除pandas数据框中的行

python - Python Django-REST-framework 和 Angularjs 的文件夹结构