Установить переменную пути SPARK-HOME в Windows и Pycharm

Я новичок в SPARK и пытаюсь использовать его в Windows. Мне удалось успешно загрузить и установить Spark 1.4.1, используя предварительно собранную версию с hadoop. В следующем каталоге:

/my/spark/directory/bin

Я могу запустить spark-shell и pyspark.cmd, и все работает отлично. Единственная проблема, с которой я сталкиваюсь, это то, что я хочу импортировать pyspark, пока я пишу в Pycharm. Прямо сейчас я использую следующий код, чтобы заставить вещи работать:

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 ответ

Это самый простой способ, который я нашел. Я обычно использую функцию, подобную следующей, чтобы сделать вещи немного менее повторяющимися.

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
Другие вопросы по тегам