在windows和pycharm中设置SPARK-HOME路径变量

时间:2015-08-25 20:31:48

标签: python windows pyspark

我是SPARK的新手并试图在Windows中使用它。我能够使用带有hadoop的预构建版本成功下载并安装Spark 1.4.1。在以下目录中:

/my/spark/directory/bin

我可以运行spark-shell和pyspark.cmd,一切正常。我正在处理的唯一问题是我想在Pycharm中编码时导入pyspark。现在我使用以下代码使事情有效:

import sys
import os
from operator import add

os.environ['SPARK_HOME'] = "C:\spark-1.4.1-bin-hadoop2.6"
sys.path.append("C:\spark-1.4.1-bin-hadoop2.6/python")
sys.path.append("C:\spark-1.4.1-bin-hadoop2.6/python/build")

try:
    from pyspark import SparkContext
    from pyspark import SparkConf

except ImportError as e:
    print ("Error importing Spark Modules", e)
    sys.exit(1)

我想知道是否有更简单的方法来做到这一点。我使用的是Windows 8 - Python 3.4和Spark 1.4.1

1 个答案:

答案 0 :(得分:1)

那是关于easiest way I've found.我通常使用类似下面的函数来减少重复性。

def configure_spark(spark_home=None, pyspark_python=None):
    spark_home = spark_home or "/path/to/default/spark/home"
    os.environ['SPARK_HOME'] = spark_home

    # Add the PySpark directories to the Python path:
    sys.path.insert(1, os.path.join(spark_home, 'python'))
    sys.path.insert(1, os.path.join(spark_home, 'python', 'pyspark'))
    sys.path.insert(1, os.path.join(spark_home, 'python', 'build'))

    # If PySpark isn't specified, use currently running Python binary:
    pyspark_python = pyspark_python or sys.executable
    os.environ['PYSPARK_PYTHON'] = pyspark_python

然后,您可以在导入pyspark之前调用该函数:

configure_spark('/path/to/spark/home')
from pyspark import SparkContext