我正在尝试使用Pycharm中的Spark编写一个非常简单的代码,我的操作系统是Windows 8.我一直在处理几个问题,除了一个之外,它设法解决了。当我使用pyspark.cmd运行代码时,一切都运行顺利但我在pycharm中没有运气相同的代码。我用以下代码修复了SPARK_HOME变量的问题:
import sys
import os
os.environ['SPARK_HOME'] = "C:/Spark/spark-1.4.1-bin-hadoop2.6"
sys.path.append("C:/Spark/spark-1.4.1-bin-hadoop2.6/python")
sys.path.append('C:/Spark/spark-1.4.1-bin-hadoop2.6/python/pyspark')
所以现在当我导入pyspark并且一切都很好时:
from pyspark import SparkContext
当我想运行其余代码时,问题就出现了:
logFile = "C:/Spark/spark-1.4.1-bin-hadoop2.6/README.md"
sc = SparkContext()
logData = sc.textFile(logFile).cache()
logData.count()
当我收到以下错误时:
15/08/27 12:04:15 ERROR Executor: Exception in task 0.0 in stage 0.0 (TID 0)
java.io.IOException: Cannot run program "python": CreateProcess error=2, The system cannot find the file specified
我已经将python路径添加为环境变量,并且它使用命令行正常工作但我无法弄清楚我的问题是什么。非常感谢任何帮助或评论。
由于
答案 0 :(得分:8)
我和你有同样的问题,然后我做了以下更改: 将 PYSPARK_PYTHON 设置为环境变量以指向Pycharm的编辑配置中的 python.exe ,这是我的示例:
PYSPARK_PYTHON = D:\ Anaconda3 \ python.exe
SPARK_HOME = D:\ spark-1.6.3-bin-hadoop2.6
PYTHONUNBUFFERED = 1
答案 1 :(得分:5)
经过两天的努力,我想出了问题所在。我将以下内容添加到“PATH”变量中作为windows环境变量:
C:/Spark/spark-1.4.1-bin-hadoop2.6/python/pyspark
C:\Python27
请记住,您需要将目录更改为安装spark的位置,以及python的相同内容。另一方面,我必须提到我正在使用包含Hadoop的预构建版本的spark。
祝大家好运。
答案 2 :(得分:2)
我遇到过这个问题,它是由群集的diff节点上的python版本冲突引起的,因此可以通过
来解决export PYSPARK_PYTHON=/usr/bin/python
是diff节点上的相同版本。然后开始:
pyspark
答案 3 :(得分:0)
除了SPARK_PYTHONPATH
和PYTHONPATH
变量之外,我必须将SPARK_HOME
设置为环境变量以指向 python.exe 文件
SPARK_PYTHONPATH=C:\Python27\python.exe