2015-08-12 2 views
4

Я создал кластер Amazon EMR с искрыми уже на нем. Когда я запускаю pyspark из терминала, он переходит в терминал pyspark, когда я вхожу в мой кластер.Amazon EMR Pyspark Модуль не найден

Я загрузил файл с помощью УПП, и когда я пытаюсь запустить его с питона FileName.py, я получаю сообщение об ошибке импорта:

from pyspark import SparkContext 
ImportError: No module named pyspark 

Как это исправить?

ответ

4

Возможно, вам нужно добавить файлы pyspark к пути. Обычно я использую функцию, подобную следующей.

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 

Спарк дома на узле ЭМИ должен быть чем-то вроде /home/hadoop/spark. См. https://aws.amazon.com/articles/Elastic-MapReduce/4926593393724923 для более подробной информации.

1

добавить следующие строки в ~/.bashrc для ЭХ 4.3:

export SPARK_HOME=/usr/lib/spark 
export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH 
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/build:$PYTHONPATH 

Выполнить source ~/.bashrc и вы должны быть хорошо.

-1

Вы можете запустить этот файл, как есть, из командной строки с помощью следующей команды:

spark-submit FileName.py 
Смежные вопросы