本文介绍了KeyError异常:SparkConf初始化过程中SPARK_HOME的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是一个新手的火花,我想运行在命令行的Python脚本。我已经测试了交互和pyspark它的工作原理。我在尝试创建SC时,这个错误:
文件test.py,10号线,上述<&模块GT;
conf=(SparkConf().setMaster('local').setAppName('a').setSparkHome('/home/dirk/spark-1.4.1-bin-hadoop2.6/bin'))
文件/home/dirk/spark-1.4.1-bin-hadoop2.6/python/pyspark/conf.py,线路104,在__init__
SparkContext._ensure_initialized()
文件/home/dirk/spark-1.4.1-bin-hadoop2.6/python/pyspark/context.py线229,在_ensure_initialized
SparkContext._gateway =网关或launch_gateway()
文件/home/dirk/spark-1.4.1-bin-hadoop2.6/python/pyspark/java_gateway.py48行,在launch_gateway
SPARK_HOME = os.environ [SPARK_HOME]
文件/usr/lib/python2.7/UserDict.py23行,在__getitem__
引发KeyError异常(键)
KeyError异常:SPARK_HOME
解决方案
好像这里有两个问题。
第一个是你使用的路径。 SPARK_HOME
应指向星火安装的根目录因此,在你的情况下,也许应该是 /home/dirk/spark-1.4.1-bin -hadoop2.6
不是 /home/dirk/spark-1.4.1-bin-hadoop2.6/bin
。
第二个问题是一个方式,您如何使用 setSparkHome
。如果检查a文档字符串其目标是
SparkConf
constructor assumes that SPARK_HOME
on master is already set. It calls pyspark.context.SparkContext._ensure_initialized
which calls pyspark.java_gateway.launch_gateway
, which tries to acccess SPARK_HOME
and fails.
To deal with this you should set SPARK_HOME
before you create SparkConf
.
import os
os.environ["SPARK_HOME"] = "/home/dirk/spark-1.4.1-bin-hadoop2.6"
conf = (SparkConf().setMaster('local').setAppName('a'))
这篇关于KeyError异常:SparkConf初始化过程中SPARK_HOME的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!