java.io.IOException:无法运行程序" python"在Pycharm中使用Spark(Windows)

时间:2015-08-27 16:36:24

标签: python windows pycharm pyspark

我正在尝试使用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路径添加为环境变量,并且它使用命令行正常工作但我无法弄清楚我的问题是什么。非常感谢任何帮助或评论。

由于

4 个答案:

答案 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_PYTHONPATHPYTHONPATH变量之外,我必须将SPARK_HOME设置为环境变量以指向 python.exe 文件

SPARK_PYTHONPATH=C:\Python27\python.exe